문제 링크: https://www.acmicpc.net/problem/1021
내 풀이:
Review:
deque의 원소를 회전하는 rotate()를 정말 오랜만에 써봤다. 해당 내용을 정리하기위해 블로그에 포스팅도 했다.
deque에서는 리스트에서의 슬라이싱과 같은 방법을 이용할 수 없다. 따라서 해당 부분을 검색해보니 deque에서도 슬라이싱 적용이 가능할 수 있게 만드는 함수인 islice를 알게 되었다. 앞으로 또 사용할 일이 있을지 모르겠지만 해당 부분을 기억해둬야겠다.
Idea:
- order에서 원소를 하나꺼내 어떤 수를 뽑아야 하는지 확인
- 해당 원소(num)를 기준으로 deq에서 앞에 있는 원소가 많은지 뒤에 있는 원소가 많은지 확인
- 앞에 있는 원소가 많다면 deque를 오른쪽을 회전, 원소의 교환횟수인 cnt를 1증가
또, deque의 첫 번째 원소가 num인지 확인후 맞다면 del deq[0]로 해당 원소를 지운다
- 뒤에 있는 원소가 많다면 deque를 왼쪽으로 회전, 원소의 교환횟수인 cnt를 1증가
또, deque의 첫 번째 원소가 num인지 확인후 맞다면 del deq[0]로 해당 원소를 지운다
- 반복문이 종료되면 cnt를 출력한다.
Reference:
https://stackoverflow.com/questions/10003143/how-to-slice-a-deque
https://docs.python.org/3/library/itertools.html
'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글
[BOJ] 회사에 있는 사람 (0) | 2022.05.29 |
---|---|
[BOJ_2002] 추월 (0) | 2022.05.29 |
[BOJ_1541] 읽허버린 괄호 (0) | 2022.05.08 |
[BOJ_1406] 에디터 (0) | 2022.05.05 |
[BOJ_9375] 패션왕 신해빈 (0) | 2022.05.05 |
댓글