반응형 레벨150 [프로그래머스] 달리기 경주 Python 풀이 문제 구현 이 문제는 효율성 테스트는 없지만 그냥 배열로 구현하면 시간 초과가 뜬다. 그래서 dict를 사용해서 구현해야 한다. dict에 이름이 키, index가 value 인 구조로 players 리스트를 가져온다. 그리고 callings 리스트를 돌면서 값을 swap 해주면 된다. dict로 바꿔줘야 된다는 것만 주의하면 레벨 1이라서 쉽게 구현할 수 있다. 코드 def solution(players, callings): pdic={} for i in range(len(players)): pdic[players[i]]=i for call in callings: idx = pdic[call] temp = players[idx-1] players[idx-1], players[idx] = players[.. 2023. 4. 7. [프로그래머스] 추억 점수 Python 풀이 문제 구현 dict에 사람과 그리움 점수를 담고 photo에서 계산하면서 result에 담으면 된다. 사실 레벨 0으로 들어가도 될 것 같은 문제다. 코드 from collections import defaultdict def solution(name, yearning, photo): ndict = defaultdict(int) answer = [] for n, y in zip(name, yearning): ndict[n] = y for p in photo: sumyearn = 0 for n in p: sumyearn += ndict[n] answer.append(sumyearn) return answer 다른 풀이 파이썬의 또다른 재미는 숏코딩이다. def solution(name, yearning, .. 2023. 4. 6. [프로그래머스] 덧칠하기 Python 풀이 문제 구현 문제가 꽤 긴데 사실 입출력 예를 보면 매우 간단한 문제다. 처음 색칠 안된칸부터 색칠해서 롤러를 칠하고 그 롤러의 길이 뒤부터 색칠이 안된곳을 찾아서 다시 칠해주면 된다. 코드 def solution(n, m, section): result=0 i=0 section = set(section) while i 0: temp = section[0] + m while len(section) != 0 and temp > section[0]: section.pop(0) answer += 1 return answer 벽 길이가 짧고 칠할게 많을 때는 원래 풀이가 좋지만 길이가 매우 길고 칠할구역이 적을 때 더 효율적인 코드라고 생각해서 써보았다. 칠할 구역이 남아있을 때까지를 while조건으로 잡고 se.. 2023. 4. 6. [프로그래머스] 대충 만든 자판 Python 풀이 오늘은 프로그래머스 최신 문제들을 다뤄보려고 한다. 먼저 대충 만든 자판이다. 문제 구현 반복문을 각각 사용해서 문제 그대로를 구현할 수 있다. 타겟 문자열을 돌고 타겟 알파벳을 보고 keymap에서 찾는 방식으로 먼저 구현해 보겠다. 코드 def solution(keymap, targets): answer = [] for t in targets: #타겟 문자열 cntsum=0 for c in t: #타겟문자열의 각 알파벳 flag = False cnt=float('inf') for key in keymap: idx = key.find(c) if idx == -1: continue cnt = min(cnt, idx+1) flag=True if flag: cntsum+=cnt else: answer.app.. 2023. 3. 9. 이전 1 2 3 4 ··· 13 다음 반응형