프로그래머스 15

[프로그래머스 | 파이썬3] 실패율 - 정렬

https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr > 정렬 딕셔너리를 선언해서 key값엔 stage 단계, value값엔 실패율을 담은 후, sorted로 정렬했다. 그런데 문제는 sorted에서 dict.items()로 정렬하는 과정에서 딕셔너리가 리스트+튜플 형태로 변하기 때문에, 리스트 내의 튜플에서 stage값만 추출하기 위해 다시 반복문을 돌렸다. * 마지막 스테이지까지 도달한 사람이 없을 경우(마지막..

[프로그래머스 | 파이썬3] 카펫- 완전탐색

https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr > 완전탐색 yellow의 약수가 될 수 있는 경우의 수 중 조건문을 만족하는 수가 있으면 해당 수들을 반환하는 함수로 작성하였다. 결과를 도출하기까지 다음 세가지 조건을 걸었다. 1) yellow의 약수가 되는 조건- yellow이하의 수 중 yellow의 약수가 되는 수가 있으면 그 수와 함께 짝을 이루는(곱했을 때 yellow가 나오는) 수를 j로 지정..

[프로그래머스 | 파이썬3] 구명보트- 그리디알고리즘 활용

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr > 그리디알고리즘 활용 최소값에서부터 시작해서 반복문을 돌리며 end값과 최소값과 더했을 때 limit을 넘어가는지 안넘어가는 지를 그때그때마다 체크해서 limit을 안넘어가게 될 때 최소값을 올려줘서 계속 탐색함 -> 현재 주어진 상황에서 가장 좋은것만 고르는 그리디 알고리즘 활용 def solution(people, limit): ..

[프로그래머스 | 파이썬3] 더 맵게- 힙 활용

https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr > 힙활용 힙을 활용해서 scoville에서 최소값을 뽑아 계산을 수행하도록 했다. https://docs.python.org/3/library/heapq.html heapq — Heap queue algorithm — Python 3.9.6 documentation heapq — Heap queue algorithm Source code: Lib/..

[프로그래머스 | 파이썬3] 로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 로또의 순위를 매겨주는 rank함수를 만들어서 해결하였다. def rank(value): if value == 6: return 1 elif value == 5: return 2 elif value == 4: return 3 elif value == 3: return 4 elif value == 2: return 5..

[프로그래머스 | 파이썬3] 크레인 인형뽑기 게임

https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 배열과 pop함수를 사용하여 풀었다. 배열을 순서대로 쌓는 과정에서 바로 이전 배열의 값과 반복되는 값이 있으면 이를 제거하고 다시 쌓아 올리는 방식을 택했다. def solution(board,moves): result_lst=[] n=0 result=0 for j in moves: for i in range(len(board)): # board배열의 해당위치에 값이 있으면 result..

[프로그래머스 | 파이썬3] 신규 아이디 추천_정규표현식, strip활용

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 정규표현식과 strip함수를 사용하여 풀었다. 주어진 룰들을 순서대로 구현하는 것이 중요하다. import re def solution(new_id): # 소문자 변환 new_id= new_id.lower() # 소문자, 숫자, -_.에 해당하는 문자들만 추출하여 생성된 리스트를 join함수로 묶어줌 p= re.compile('[a-z0-9-_.]+') ..

[프로그래머스 | 파이썬3] 내적_sum함수 활용

https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr sum함수와 반복문을 사용하여 풀었다. def solution(a,b): return sum(a[i] * b[i] for i in range(len(a))) 코드에 쓴것과 같은 sum함수의 형식은 다음 링크의 코딩테스트 연습에서 처음 알게된 형식으로 이번 문제에 조금 변형하여 적..

[프로그래머스 | 파이썬3] 소수 만들기_combinations활용

https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 해당 문제는 itertools의 combinations함수를 활용하여 풀었다. from itertools import combinations def solution(nums): cnt= 0 for i in list(combinations(nums,3)): # 조합 튜플 합계 계산 sums= sum(i) # 합계가 소수인지 아닌지 판별한 후 소..

[프로그래머스 | 파이썬3] 음양더하기_ 기본연산식, sum함수 사용

https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 반복문과 기본 연산식만으로 간단하게 풀 수 있던 문제였다. 1. 첫번째 답안 def solution(absolutes, signs): result=0 for i in range(len(absolutes)): if signs[i]==True: result+= absolutes[i] else: result -= absolutes[i] retu..