본문 바로가기

해시5

[프로그래머스] Lv2 - 순위 검색 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/72412 = score: right = mid else: left = mid + 1 answer.append(len(arr)-left) 2021 카카오 블라인드, 이분탐색, 해시 1. dict = 각 키마다 점수를 저장해 줄 defaultdict(list) 2. info리스트 내부의 값마다 (점수를 제외한 값을 key, 점수를 score) - add : key의 리스트 값 중 0부터 4개를 가지는 모든 값(조합)을 문자열로 변환, 해당 값의 dict에 score 추가 3. 모든 키의 값(점수가 들어있는 리스트)들을 정렬 4. query리스트의 모든 값마다 'and'와 '-'를 삭제해주고 split() (점수를 제.. 2022. 4. 5.
[프로그래머스] Lv2 - 메뉴 리뉴얼 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr from collections import defaultdict from itertools import combinations as comb def solution(orders, course): # 모든 조합을 딕셔너리에 기록 dict = defaultdict(int) for x in orders: get_all_comb(list(x), course, dict) .. 2022. 3. 31.
[프로그래머스] Lv1 - 키패드 누르기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr from collections import defaultdict def solution(numbers, hand): arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ['*', 0, '#']] # 숫자의 위치 딕셔너리 정의 loca.. 2022. 3. 16.
[프로그래머스] Lv1 - 신고 결과 받기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr from collections import defaultdict def solution(id_list, reports, k): reported = dict() for report in reports: x, y = report.split(' ') if not reported.get(y): reported[y] = set([x]) else: reported[.. 2022. 3. 15.
[프로그래머스] 고득점Kit (1) - 해시 (파이썬) 1. 완주하지 못한 선수 (Lv. 1) # 완주하지 못한 선수 def solution(participant, completion): info = {} for i in participant: if info.get(i): info[i] += 1 else: info[i] = 1 for i in completion: info[i] -= 1 answer = '' for i, num in info.items(): if num != 0: answer = i break return answer 동명이인이 있기 때문에 {참가자 이름 : 이름 숫자} 쌍의 info선언 완주한 사람들의 숫자를 한명씩 줄인다. 남은 info에서 숫자가 0이 아는 이름이 완주를 하지 못한 사람의 이름이다. 2. 전화번호 목록 (Lv. 2) # .. 2022. 2. 20.