본문 바로가기
반응형

enumerate5

[프로그래머스] 달리기 경주 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 풀이 오늘은 프로그래머스 최신 문제들을 다뤄보려고 한다. 먼저 대충 만든 자판이다. 문제 구현 반복문을 각각 사용해서 문제 그대로를 구현할 수 있다. 타겟 문자열을 돌고 타겟 알파벳을 보고 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.
Python 진료 순서 정하기 [코딩테스트 입문 - Day8] 문제 구현 임시 리스트에 내림차순으로 emergency 정렬한 것을 저장한 후 임시 리스트를 돌며 emergency에서 원소를 찾아 인덱스를 찾는다. 코드 def solution(emergency): temp = sorted(emergency, reverse=True) answer = [temp.index(i)+1 for i in emergency] return answer 다른 풀이 위보다 간단하게 푸는 법은 보이지 않지만 약간의 효율성을 더 따진다면 enumerate를 쓴 후 index로 접근하면 된다. def solution(emergency): answer = [] emer_ls = {e: i + 1 for i, e in enumerate(sorted(emergency)[::-1])} for e .. 2023. 2. 15.
Python 최빈값 구하기 [코딩테스트 입문 - Day3] 문제 구현 코드 import statistics def solution(array): temp = statistics.multimode(array) return -1 if len(temp)>1 else temp[0] statistics의 multimode를 사용해 최빈값을 추출했다. 참고 : (https://docs.python.org/ko/dev/library/statistics.html) multimode의 설명은 다음과 같다. array에서 먼저 발견되는 순서대로 가장 자주 등장하는 값의 리스트를 반환한다. 여러 최빈값이 있으면 둘 이상의 결과를 반환하고 비어있다면 빈 리스트를 반환한다. 이 방법은 잘 쓰지 않는 방법이라 코딩테스트에서는 권장하지 않는다. 다른 풀이 enumerate를 써서 배열의 .. 2023. 1. 16.
반응형