Python/TIL

Python/TIL

[Programmers] 이진 변환 반복하기_dict 사용

문제 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다. 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크기가 서로..

Python/TIL

[Programmers] 분수의 덧셈_최대공약수 gcd

문제 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 풀이 분수의 덧셈을 풀어 써보면, a/b + c/d = (a*d + b*c)/b*d이다. 기약분수로 나타내려면 추가로 최대공약수를 이용해 약분해주면 된다. import math def solution(numer1, denom1, numer2, denom2): numer = denom1*numer2 + denom2*numer1 #분자 denom = denom1 * denom2 #분모 gcd = math.gcd(..

Python/TIL

[Programmers] 다음에 올 숫자_[-1], [-2]

문제 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. 풀이 def solution(common): # 등차수열 if common[1] - common[0] == common[-1] - common[-2]: return common[-1] + (common[1] - common[0]) # 등비수열 else: return common[-1] * (common[-1] // common[-2]) 배운 점 양수 인덱스 : 0부터 왼쪽에서 시작 음수 인덱스 : -1부터 오른쪽에서 시작

Python/TIL

[Programmers] 최빈값 구하기_statistics.multimode()

문제 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 예시 [1,2,3,3,3,4]에서 1은 1개 2는 1개 3개는 3개 4는 1개로 최빈값은 3입니다 [1,1,2,2]에서 1은 2개, 2는 2개로 최빈값이 1,2입니다. 최빈값이 여러개이므로 -1을 return합니다 [1]에는 1만 있으므로 최빈값은 1입니다. 풀이 import statistics def solution(array): multimode_num = statistics.multimode(array) print(multimode_num) statistics 라이브러리 실행 후, multimode(최빈값들의 list)를 활용해 최빈값..

Python/TIL

[Programmers] 문자열 겹쳐 쓰기_Slicing

문제 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요. 입출력 예 #1 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다. 입출력 예 #2 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를..

Python/TIL

[Programmers] 문자열 내 마음대로 정렬하기_sorted

문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. + 제한 조건 : 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞 쪽에 위치한다. 풀이 def solution(strings, n): return sorted(strings, key=lambda x:(x[n], x)) : sorted함수를 활용해 정렬을 했고, 정렬 기준을 주기 위해 key 파라미터를 썼다. x[n]기준으로 정렬 후, 제한 조건도 반영하기 위해 전체적으로 ..

Python/TIL

[Programmers] 연속된 수의 합_range

문제 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. 문제 요약 연속된 num개 수의 합이 total이 되도록 해야 한다. 풀이 def solution(num, total): avg = total // num return [i for i in range(avg-(num-1)//2, avg+(num+2)//2)] [3, 4, 5] 의 경우, total//num = 4를 기준으로 [4-1, 4, 4+1]이다. 이 리스트를 range로 나타내면 파이썬에서 range는 (시작, 끝)에서 끝-1까지의 값을 의미한다..

J pathfinder
'Python/TIL' 카테고리의 글 목록