알고리즘 풀이79 [알고리즘] 프로그래머스 | 완주하지 못한 선수, 과일 장수 완주하지 못한 선수 #해시 답: 더보기 # 해시로 풀이하기 key값에 hash값 넣어주기 def solution(participant, completion): answer = '' temp = 0 parti_dic = {} for p in participant: parti_dic[hash(p)] = p temp += int(hash(p)) for c in completion: temp -= hash(c) answer = parti_dic[temp] return answer *** hashMap은 보통 value 값에 숫자를 넣고 key값에는 string을 넣어주므로 value에 hash를 넣는 방식으로 수정해보았다. #해시로 풀이하기 value에 해시값 넣어주기 def solution(participan.. 2023. 8. 10. [알고리즘] 프로그래머스 | 3진법 뒤집기, 푸드파이트대회, 예산 3진법 뒤집기 답: 더보기 def solution(n): answer = 0 num_str = "" while(n != 0): num_str += str(n % 3) n = n // 3 for i in range(2, len(num_str)+1): # i의 반대되는 수가 3승으로 들어가야함, -2부터 1승 시작 answer += int(num_str[-i]) * (3**(i-1)) return answer + int(num_str[-1]) 계산이 약간 복잡했지만 풀어낼 수 있어서 기분좋당! +++ int()의 기능. str으로 된 숫자를 2번째인자 진법으로 변환해줌.. def solution(n): num_str = "" while(n != 0): num_str += str(n % 3) n = n // .. 2023. 8. 9. [알고리즘] 프로그래머스 | 콜라츠 추측, 부족한 금액 계산하기, 최대공약수와 최소공배수 콜라츠 추측 답: 더보기 def solution(num): answer = 0 if num == 1: return answer while num != 1: if num % 2 == 0: num = num // 2 answer += 1 else: num = num * 3 + 1 answer += 1 if answer >= 500: return -1 return answer 문제 분석 및 해석 콜라츠추측 : 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. >> 풀이 생각 계속해서 조건을 반복해야하므로.. 2023. 8. 8. [알고리즘] 프로그래머스 | K번째 수, 숫자 문자열과 영단어 K번째 수 답: 더보기 def solution(array, commands): answer = [] for c in commands: i = c[0] - 1 j = c[1] k = c[2] - 1 a = array[i:j] answer.append(sorted(a)[k]) return answer 짧게 줄여보았음! def solution(array, commands): answer = [] for c in commands: i, j, k = c answer.append(sorted(array[i-1:j])[k-1]) return answer 문제 분석 및 해석 1. i번째 숫자부터 j번째 숫자까지 자르고 2. 정렬했을 때, 3. k번째에 있는 수 구하기 풀이생각 commands에서 각 요소를 꺼내어 범위.. 2023. 8. 7. 이전 1 ··· 7 8 9 10 11 12 13 ··· 20 다음