본문 바로가기

코딩테스트

(4)
신고 결과 받기 def solution(id_list, report, k): answer = [] #report에서 중복되는 항목 제거 report = list(set(report)) #id_list를 key로 갖는 value 0인 딕셔너리 생성 id_dict = {id : 0 for id in id_list} id_dict2 = {id : 0 for id in id_list} #split 해서 신고자와 신고 당한 사람 나누기 splitted_report = [r.split() for r in report] #신고 당했을 경우 id_dict에 value 1씩 더해줌 for report_idx in range(len(report)): id_dict[splitted_report[report_idx][1]] += 1 #신고 ..
숫자 문자열과 영단어 num_dict = {'zero':'0','one':'1','two':'2','three':'3','four':'4','five':'5','six':'6','seven':'7','eight':'8','nine':'9'} number_list = list(num_dict.keys()) def solution(s): for number_idx in number_list: if number_idx in s: s = s.replace(number_idx,num_dict[number_idx]) answer = int(s) return answer
k번째 수 구하기 def solution(array, commands): answer = [] for commands_idx in commands: commands_array = array[commands_idx[0]-1:commands_idx[1]] commands_array.sort() answer.append(commands_array[commands_idx[2]-1]) return answer
크레인 인형뽑기 게임 def solution(board, moves): basket = list() #바구니를 리스트로 생성 basket.append(0) #0이 아닌 경우에만 담을 것이기 때문에 인덱스를 위해 0 추가 answer = 0 for idx in moves: for board_idx in range(len(board[0])): if board[board_idx][idx-1] != 0: # 0이 아닌 숫자가 나올 때까지 길이만큼 반복 if basket[-1] == board[board_idx][idx-1]: basket.pop() answer += 2 #바구니의 맨위 값과 같을 경우 터뜨리고 answer에 +2 else: basket.append(board[board_idx][idx-1]) #다를 경우 append..