프로그래머스
-
[Python] Programmers 로또의 최고 순위와 최저 순위알고리즘/문제풀이 2021. 8. 14. 20:13
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 2. 문제 요약 구매한 로또에 0이 표기되어 있고, 당첨 번호가 주어진다. 당첨 가능한 최고 순위와 최저 순위를 리턴한다. 3. 아이디어 정리 내 로또 번호를 한 개씩 for문을 돌린다. 0이 아닌 경우 win_nums(당첨번호)에 들어가는지 확인한다. 최저 순위 관련 변수에는 0의 개수 만큼 당첨 ..
-
[Python] Programmers 순위 검색알고리즘/문제풀이 2021. 7. 17. 21:23
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/72412 총 16가지 종류 for i in info: i = i.split() case = get_combinations(i) for c in case: all_info[c].append(int(i[-1])) # 2. dict에 있는 리스트 점수를 이분 탐색해서 구하기 위해 sorting for k in all_info.keys(): all_info[k].sort() # 3. 쿼리 하나씩 돌려 해당 조건에 있는 dict를 찾아 이분탐색으로 점수에 맞는 사람 찾기 for q in query: q = q.replace("and","").split() score = int(q.pop()) q = ""...
-
[Python] Programmers 광고 삽입알고리즘/문제풀이 2021. 7. 17. 21:17
1. 문제 링크 코딩테스트 연습 - 광고 삽입 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 2. 문제 요약 시청자들의 누적 재생시간이 가장 많은 곳 찾기 ⇒ 누적합으로 구하기 [입력값] play_time: 동영상 끝나는 시간 adv_time: 공익광고 재생 시간 logs: 시청자들 시청하는 구간 [리턴 값] 광고 삽입할 시작 시간 - HH:MM:SS (str) 3. 아이디어 정리 누적합으로 해당 구간에 몇 명이 시청하는지 구한다. 초 ..
-
[Python] programmers 메뉴 리뉴얼 - 구현 문제알고리즘/문제풀이 2021. 7. 3. 19:26
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 2. 문제 요약 주문할 때 가장 많이 주문한 단품 메뉴로 구성 최소 2명 이상의 손님이 주문 3. 아이디어 정리 defaultdict에 조합 메뉴 횟수를 담아 가장 많이 주문된 요리를 찾는 풀이 하였다. 4. 문제 풀이 4-1. 내 풀이 from itertools import combinations from collections import def..