분류 전체보기
-
[프로그래머스] Python - 베스트앨범메모/알고리즘 2022. 1. 29. 22:52
코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 해시 레벨3 문제다. 처음에 문제를 오해해서 아예 다르게 푸느라 시간이 걸렸다. 막상 풀면 엄청 쉬운 문제다. 다만 나의 풀이는 정렬을 두 번 수행하느라 시간복잡도가 클 것으로 예상된다. GitHub - Floodnut/algorithm: 알고리즘 풀이 모음 알고리즘 풀이 모음. Contribute to Floodnut/algorithm development by creating an account on GitHub. github.com
-
[프로그래머스] Python - 위장메모/알고리즘 2022. 1. 28. 22:39
코딩테스트 연습 - 위장 programmers.co.kr 해시의 레벨2 문제이다. 풀이 수 자체는 전화번호 목록보다 조금 낮지만 난이도는 비슷한 것 같다. 유사 딕셔너리를 이용해서 의상의 개수를 정수형으로 저장하고 이를 바탕으로 조합의 개수를 구했다. 소스코드는 아래 링크에 첨부한다. GitHub - Floodnut/Algorithm: 알고리즘 풀이 모음 알고리즘 풀이 모음. Contribute to Floodnut/Algorithm development by creating an account on GitHub. github.com
-
[프로그래머스] Python - 전화번호 목록메모/알고리즘 2022. 1. 27. 23:58
코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 해시의 레벨2 문제이다. 접두어를 찾는 문제여서 어떻게 풀지 고민하다가 우선 정렬을 하였다. 문자열을 정렬하고 앞에서부터 겹치는 것이 있는지 판단하였다. 더보기 더보기 def solution(phone_book): phone_book.sort() num = phone_book[0] for i in range(1, len(phone_book)): if phone_book[i].startswith(num): return False else: num = phone..
-
[프로그래머스] Python - 완주하지 못한 선수메모/알고리즘 2022. 1. 27. 23:32
코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 프로그래머스 완주하지 못한 선수 문제다. 리스트를 순회해서 remove 함수로 하나씩 제거해가며 푸는 방식을 처음 선택했었는데 remove 함수의 시간복잡도가 O(n)이다보니 반복문에 중첩하면 시간이 오래 걸린다. 이 후에 딕셔너리에 빈도 수를 측정하는 방식을 선택하여 해결했다. 더보기 def solution(participant, completion): hash = dict() for _p in participant: if _p in has..