반응형
<내 풀이>
def solution(priorities, location):
answer = 0
while True:
max_num=max(priorities)
for i in range(len(priorities)):
if max_num==priorities[i]:
answer+=1
priorities[i]=0
max_num=max(priorities)
if location==i:
return answer
처음에 리스트의 max값을 구해주고 돌아가며 해당 값이 max값인지 확인한다.
그리고 max값이면 그 자리 값을 0으로 바꾸고 answer에 1 더해준다.
다시 max값을 재설정해주고 for문을 돌린다.
구하려는 idx 즉 location 차례가 오면 answer을 반환해준다!
간단히 풀 수 있었지만 다른 사람의 풀이를 보았을 때는 내 코드가 효율적이라고는 생각되지 않는다.
<다른사람의 풀이>
def solution(priorities, location):
queue = [(i,p) for i,p in enumerate(priorities)]
answer = 0
while True:
cur = queue.pop(0)
if any(cur[1] < q[1] for q in queue):
queue.append(cur)
else:
answer += 1
if cur[0] == location:
return answer
enumerate()함수를 사용한 것이 좋은 접근인 것 같다.
그리고 any()를 사용하여 불필요한 과정을 생략한 것이 인상적이었다.
알고는 있어도 익숙하지 않아서 활용을 잘 못하는 것이 문제였던 것 같다.
반응형
'알고리즘 > 프로그래머스 level 1,2' 카테고리의 다른 글
[파이썬🐍] 프로그래머스 : 체육복 (0) | 2021.04.19 |
---|---|
[파이썬🐍] 프로그래머스 : 모의고사 (0) | 2021.04.18 |
[파이썬🐍] 프로그래머스 : 완주하지 못한 선수 (0) | 2021.04.18 |
[파이썬🐍] 프로그래머스 : 주식가격 (0) | 2021.04.17 |
[파이썬🐍] 프로그래머스 : 두 개 뽑아서 더하기 (0) | 2021.04.16 |
댓글