프로그래머스(파이썬)/LV.2(파이썬)

    피로도 - for문 안에 재귀함수가 있는 경우★★+ return값 없음★

    피로도 - for문 안에 재귀함수가 있는 경우★★+ return값 없음★

    일단 아래 코드에서 "순열" 부터 먼저 짚고 가자! arr = [] #순회대상이 되는 리스트 visited=[] #방문흔적을 기록할 체크리스트 result=[] #현재 순열을 담을 리스트 answer=[] #모든 순열을 담을 answer리스트 def dfs(L,r): if L == r: # answer.append(result) //틀림 answer.append(result[:]) return #리턴문이 있어도 되고, 없어도 된다. 재귀함수의 경우 조건이 만족되면, 호출된 스택은 종료된다. else: for i in range(len(arr)): if visited[i] == 0: result[L] = arr[i] visited[i] =1 dfs(L + 1,r) visited[i] = 0 def solu..

    주차요금계산 카카오→split(), 1차원 리스트 여러 개 변수로 받기

    import math def convert(time): hh, mm = time.split(':') return int(hh)*60 + int(mm) def solution(fees, records): intime = {} result = {} for x in records: time, carNum, inout=x.split() if inout=="IN": #입고 시간 intime[carNum]=convert(time) if carNum not in result: result[carNum]=0 #inout이 "OUT"인 경우 else: #출차시간 #입고시간 result[carNum]+=convert(time)-intime[carNum] del intime[carNum] for key, val in int..

    [3차] 압축 → 전진 + 후진, 슬라이싱 "첫자리" 갱신

    def solution(msg): answer = [] tmp = {chr(e + 64): e for e in range(1, 27)} num = 27 while msg: # print(msg) tt = 1 # print(tt) #tmp가 포함하고 있는 "문자열"까지 찾기 while msg[:tt] in tmp.keys() and tt

    H-index → 논문을 적게 발표했지만, 인용된 수가 많은 good 케이스

    이해를 돕기 위해서 아래 설명을 덧붙인다. 해당 논문이 인용된 수 : [9, 7, 6, 1] 발표된 논문의 수 : [1, 2, 3, 4] return 3 해설 첫번째 경우를 살펴보면, 논문을 1개 발표했는데, "해당 논문"이 다른 곳에서 9번 인용되었다는 의미이므로 "good"이다라고 볼 수 있고, 마지막의 경우를 살펴보면, 논문을 4개 발표했는데, "해당 논문"은 다른 곳에서 1번 인용되었다는 의미이므로 'bad"라고 볼 수 있다. →우리의 목표는 인용된 수가 발표된 논문의 수와 같거나 인용된 수가 발표된 논문의 수보다 큰 "경우의 수"를 구하는 것이다. 즉 "good"인 경우를 찾겠다는 의미이다. 해당 논문이 인용된 수 : [15, 12, 10, 8, 6, 3, 2, 1] 발표된 논문 수) : [ 1..