일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- build
- SQL
- 컴퓨터비전
- MSBuild
- BFS
- 어렵다
- Python
- androidstudio
- git
- 자바
- Github
- 대학원일기
- level1
- SWEA
- D3
- 내휴학생활중의아주큰일
- py
- 안드로이드스튜디오
- 다시풀기
- 대학원
- level4
- 프로그래머스
- 컨트리뷰톤
- 휴학
- level3
- Matrix Factorization
- WebOS
- java
- LEVEL2
- 파이썬
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
Py) 프로그래머스 42587 본문
https://programmers.co.kr/learn/courses/30/lessons/42587
1차
from collections import deque
def solution(priorities, location):
answer = 0
# tmp = priorities[location]
deq = deque(priorities)
while deq:
first = deq.popleft()
location -= 1 # 맨 앞을 뽑아내면 location의 크기가 즐어듦
for i in deq : # 남은 원소들 중 비교
if i > first:
deq.append(first)
# location에 해당하는게 뒤로 간다면, location크기 늘어남
if location == -1:
location = len(deq)-1 # location의 크기 +1
break
if first == max(priorities):
break
if location == -1: # location이 맨앞이라면 while문 종료
break
# 다 돌았는데 없으면 pop
answer = location + 2
return answer
location값에서 순서를 조절해서 answer에 대입시키려고 했음
제출 전 실행할땐 통과하는데 제출하면 틀렸습니다가 뜬당,, ._.
생각해주지 못한 경우가 있는 것 같은데,, 생각이 안난다
#2차(검색,,)
from collections import deque
def solution(priorities, location):
answer = 0
deq = deque([(i, v) for v, i in enumerate(priorities)])
# 원래는 순서가 앞, value가 뒤에 오지만, v,i를 바꿈
while deq:
first = deq.popleft()
if deq and max(deq)[0] > first[0]:
deq.append(first)
else:
answer += 1
if first[1] == location:
break
return answer
이 코드는 answer로 움직이고, 처음부터 location에서 주어진 위치를 움직인다기 보다는 성공적으로 pop된 경우에 answer += 1을 한다.
deque를 튜플 형태로 사용해서 answer랑 튜플의 값이랑 비교한다.
deq에 원소가 하나 남았을 경우도 고려했다. 멋져,,
그렇게 생각하니까 훨씬 깔끔하다. 나도 잘하고 싶당
나중에 java 코드를 한번 봐야겠다 싶다. python에서는 저런 함수들이 있어서 갖다 쓸 수 있다지만 함수 없으면 어떻게 해야했을까 궁금함
*
deque에서 튜플
enumerate
반응형
'Algorithm > Prob' 카테고리의 다른 글
Py ) 프로그래머스 60057 + 1/16다시풀기 (0) | 2022.01.10 |
---|---|
Py) 프로그래머스 42584 (0) | 2022.01.07 |
Py) 프로그래머스 43165 (0) | 2022.01.05 |
Py, Java) 프로그래머스 42576 (0) | 2022.01.04 |
Py) 프로그래머스 42895 (0) | 2022.01.03 |
Comments