본문 바로가기

Algorithm7

[python]programmers - 메뉴리뉴얼 programmers Level2 2021 KAKAO BLIND RECRUITMENT 메뉴리뉴얼 카카오 코테에서 이 문제를 풀었던 기억이 난다. 그때 문제를 덜 이해해서 정답을 맞추지는 못했었다. [입출력 예] orders course result ["ABCFG", "AC", "CDE", "ACDE", "BCFG", "ACDEH"] [2,3,4] ["AC", "ACDE", "BCFG", "CDE"] ["ABCDE", "AB", "CD", "ADE", "XYZ", "XYZ", "ACD"] [2,3,5] ["ACD", "AD", "ADE", "CD", "XYZ"] ["XYZ", "XWY", "WXA"] [2,3,4] ["WX", "XY"] 이전 코테에서 문제를 풀때 두번째 예시의 정답에 왜 'AB'가 안들어.. 2021. 7. 21.
[python]programmers - 더맵게 프로그래머스 Level2 힙(Heap) 더 맵게 참고 : heapq 모듈 사용법 [파이썬] heapq 모듈 사용법 Engineering Blog by Dale Seo www.daleseo.com 소스 코드 import heapq def solution(scoville, K): h = [] # heap c = 0 # 변환 횟수 카운트 for i in scoville : heapq.heappush(h, i) while True : a = heapq.heappop(h) # 최소값을 pop if(a >= K) : # 최소값이 K보다 크면 나머지 값들도 다 K보다 크다 break elif(len(h) == 0 and a < K) : # 최소값 하나 남았는데 K보다 작으면 -1 반환 return -1 b = hea.. 2021. 7. 20.
[python]재귀 - 하노이의 탑 [참고 블로그] shoark7.github.io/programming/algorithm/tower-of-hanoi '하노이의 탑' 이해하기 '하노이의 탑' 문제를 이해하고 문제 해결을 위한 핵심 통찰을 살핀 뒤 코드로 작성합니다. 이후 탑의 개수에 따른 총 이동 횟수를 구하는 일반항까지 수학적으로 유도합니다. shoark7.github.io [코드] # 하노이의 탑 경로출력 - 출처 : https://shoark7.github.io/programming/algorithm/tower-of-hanoi MSG_FORMAT = "{}: {} -> {}" def move(N, start, to): print(MSG_FORMAT.format(N, start, to)) def hanoi(N, start, to, vi.. 2021. 4. 24.
[python]programmers-방금그곡 2017 KAKAO BLIND RECRUITMENT 문제 : 방금그곡 원래의 노래가사를 재생된 시간만큼 늘려야한다. #이 붙은 것은 #을 제거해야한다.(C#을 1개로 봐야함) 내 코드 def removeS(s) : new_s = '' for i in range(len(s)-1) : if(s[i+1] == '#') : new_s += s[i].lower() elif(s[i] == '#') : continue else : new_s += s[i] if(s[-1] != '#') : new_s += s[-1] return new_s def solution(m, musicinfos): title = [] new_m = removeS(m) print('new m : ', new_m) for i in range(le.. 2020. 11. 30.
[python]programmers-뉴스클러스터링(자카드 유사도) 2018 KAKAO BLIND RECRUITMENT 문제 : 뉴스 클러스터링 입력되는 두개의 문자열의 자카드 유사도를 계산하는 문제이다. 입력되는 문자열을 두글자씩 끊어야 한다(HELLO -> HE, EL, LL, LO) 예를들어 입력된 문자열을 두글자씩 끊었을 때 str1 = {aa, aa, ab, bb, bc}, str2 = {aa, aa, ab, ab, bb}라고 해보자. str1 | str2 (합집합) = {aa, aa, ab, ab, bb, bc} str1 & str2 (교집합) = {aa, aa, ab, bb} 일반 집합의 합/교집합 결과와 다르게, 만약 aa가 두 문자열에 두번 나타나면 aa 두개가 합집합, 교집합에 들어간다. 만약 str1에는 ab가 2개, str2에는 ab가 하나라면, 교.. 2020. 11. 30.
[python]programmers-캐시 2018 KAKAO BLIND RECRUITMENT 문제 : 캐시 캐시사이즈와(cacheSize) 읽을 데이터(cities)를 주고 지금 읽는 데이터가 cache에 있으면(hit) 실행시간+1, 없으면(miss) 실행시간+5 를 해주어 최종 데이터를 읽는 시간이 얼마인지 알아내는 문제이다. 캐시 교체 정책은 LRU 방식을 이용한다. 만약 캐시에 [1, 2, 3]이 있고, 현재 1을 조회하려고 하면 hit이고(실행시간+1), 가장 최근에 조회된것은 1이다. 이때 4가 들어온다면, 1이 아닌 2가 제거되고 캐시에는 [3, 1, 4]가 남는다(운영체제를 배우지 않았다면 아마 헷갈릴수도 있을듯!) 내 풀이 def solution(cacheSize, cities): time = 0 cache = [] if(cac.. 2020. 11. 30.