ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ํ๋ฆฐํฐ
dirmathfl 2020. 9. 4. 17:27728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ค์๋๊ฐ ๊ฐ์ฅ ๋์ ๋ฌธ์๋ถํฐ ์ธ์๋ ์ ์๋๋ก ํ์ฌ, ๋ด๊ฐ ์์ฒญํ ๋ฌธ์๋ ๋ช ๋ฒ์งธ์ ์ธ์๊ฐ ๋๋์ง ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ์ด๋ฅผ ์ฐพ๊ธฐ ์ํด ์ธ์๋ก ์ฃผ์ด์ง ์์น(location)๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ค์๋๊ฐ ๋ฎ์ ๊ฒฝ์ฐ ํ๋ฅผ ํ์ฉํด ๋ค๋ก ๋ณด๋ด๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๋ฅผ ํตํด ๋ด๊ฐ ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์ธ์ ์ถ๋ ฅ๋๋์ง ํ๋จํ ์ ์๋ค.
์๋ฅผ ๋ค์ด ์์ #1์ ๊ฒฝ์ฐ, [2, 1, 3, 2]์ด๊ณ ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์ 2๋ ๊ฐ์ฅ ๋จผ์ ์ถ๋ ฅ๋๋ค. ์ด๋ ์ถ๋ ฅ ๋๊ธฐ์ด์ ์ต๋ ๊ฐ๊ณผ ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์ผ์นํ๋ค๋ฉด ํ์๋ฅผ ์ฆ๊ฐ์ํค๋ ๋ฐฉ์์ผ๋ก ์นด์ดํธํ ์ ์๋ค.
- priorities๋ฅผ `deque`๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก ๋ง๋ ๋ค.
- ํ์ฌ ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์ธ์ ๋๊ธฐ ์ค์ธ ๋ฌธ์ ์ค ์ต๋๊ฐ์ด๋ผ๋ฉด, ์ถ๋ ฅํ๋ค.
- ๋ฌธ์๊ฐ ์ถ๋ ฅ๋๋ฉด, answer๋ฅผ 1 ์ฆ๊ฐ ์ํจ๋ค.
- location์ด 0์ด๋ผ๋ฉด ๋ด๊ฐ ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ด๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ค.
- location์ด 0์ด ์๋๋ผ๋ฉด, ๋ด๊ฐ ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์๋๊ณ ๋ค๋ฅธ ๊ฒ์ด ์ถ๋ ฅ๋ ๊ฒ์ด๋ฏ๋ก location์ 1 ๊ฐ์์ํจ๋ค.
- ์๋ ๊ฒฝ์ฐ ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋๊ธฐ์ด์ ๋์ผ๋ก ๋ณด๋ธ๋ค.
- location์ด 0 ์ธ๊ฒฝ์ฐ ๋ด๊ฐ ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์์ ์์น๋ฅผ ํ์ฌ ์ธ์ ๋๊ธฐ์ด์ ๋์ผ๋ก ๋ณ๊ฒฝํ์ฌ์ผ ํ๋ค.
- location์ด 0์ด ์๋๋ผ๋ฉด, ๋ค๋ฅธ ๋ฌธ์๊ฐ ์ถ๋ ฅ๋๊ณ ์์ผ๋ก ํ ์นธ ๋์๊ฐ๊ฒ ๋๋ฏ๋ก location์ 1 ๊ฐ์์ํจ๋ค.
์ฝ๋
from collections import deque
def solution(priorities, location):
answer = 0
max_priority = max(priorities)
priorities = deque(priorities)
while True:
priority = priorities.popleft()
if max_priority == priority:
answer += 1
if not location:
break
else:
location -= 1
max_priority = max(priorities)
else:
priorities.append(priority)
location = len(priorities) - 1 if not location else location - 1
return answer
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ๋ฑ๊ตฃ๊ธธ (0) | 2020.10.05 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋งต๊ฒ (0) | 2020.09.04 |
ํ๋ก๊ทธ๋๋จธ์ค: ๊ตฌ๋ช ๋ณดํธ (0) | 2020.09.03 |
ํ๋ก๊ทธ๋๋จธ์ค: ์ฃผ์๊ฐ๊ฒฉ (0) | 2020.09.03 |
ํ๋ก๊ทธ๋๋จธ์ค: ์คํฌํธ๋ฆฌ (0) | 2020.09.02 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ