일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
Tags
- 어렵다
- Github
- Matrix Factorization
- java
- 프로그래머스
- 컨트리뷰톤
- 컴퓨터비전
- BFS
- 대학원일기
- MSBuild
- 휴학
- level1
- build
- py
- 안드로이드스튜디오
- 내휴학생활중의아주큰일
- 자바
- 다시풀기
- SWEA
- WebOS
- 대학원
- SQL
- 파이썬
- git
- Python
- D3
- androidstudio
- level3
- LEVEL2
- level4
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
Py) 프로그래머스 42587 본문
https://programmers.co.kr/learn/courses/30/lessons/42587
코딩테스트 연습 - 프린터
일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린
programmers.co.kr
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