๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
G4 | ์๋ฃ๊ตฌ์กฐ, ์คํ
๋ฌธ์ ๋ฅผ ํผ ๋ค ๋ฌธ์ ์ ํ์ ๋ดค๋๋ฐ ์คํ์ด๋ผ๊ณ ๋์ด์์๋ค.
ํ์ง๋ง ๋ด ํ์ด๋ ์คํ์ ์ฌ์ฉํ์ง ์์๋ค. ๊ทธ๋ฐ๋ฐ ๋ค๋ฅธ ์ฌ๋๋ณด๋ค ํจ์จ์ด ์ข๊ฒ ๋์๋ค. ๋ฉ๋ชจ๋ฆฌ๋ ํ๊ท ์ธ๋ฏ.
ํ์ด ๋ฐฉ๋ฒ
1๋ฒํ๋ถํฐ ๋ง์ง๋งํ ์์ผ๋ก ํ์ํ๋ค.
- ํ์ฌํ๊ณผ ์ด์ ํ๊ณผ ๊ฐ์ ๋
- ํ์ฌํ์ ๋ ์ด์ ์ ํธ๋ฅผ ์์ ํ๋ ํ์ ์ด์ ํ์ ๋ ์ด์ ์ ํธ๋ฅผ ์์ ํ๋ ํ๊ณผ ๊ฐ๋ค.
- ํ์ฌํ์ด ์ด์ ํ๋ณด๋ค ๋ฎ์ ๋
- ํ์ฌํ์ ๋ ์ด์ ์ ํธ๋ฅผ ์์ ํ๋ ํ์ ์ด์ ํ์ด๋ค.
- ํ์ฌํ์ด ์ด์ ํ๋ณด๋ค ๋์ ๋ ๐ฑ๐
- ์ด์ ํ์ ๋ ์ด์ ์ ํธ๋ฅผ ์์ ํ ํ์ผ๋ก ๊ฑด๋ ๋ด๋ค.
- ๊ทธ ํ์ ์์ 3๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ฒดํฌํ๋ค.
- ์์ง ํ์ฌํ์ด ๋์ ์ํ๋ผ๋ฉด ๋ ๊ทธ ํ์ ๋ ์ด์ ์ ํธ๋ฅผ ์์ ํ ํ์ผ๋ก ๊ฑด๋ ๋ด๋ค.
์ด๋ ๊ฒ 3๊ฐ์ง๋ก ๋ถ๋ฆฌํ๋ค.
๐ป์์ค ์ฝ๋
if __name__ == '__main__':
N = int(input())
TOP = list(map(int, input().split()))
answer = [0] * N
for i in range(1, N):
j = i - 1
while j >= 0:
if TOP[i] == TOP[j]: # ์ด์ ๊ณผ ๊ฐ์ ๋
answer[i] = answer[j]
break
elif TOP[i] > TOP[j]: # ์ด์ ๋ณด๋ค ๋์ ๋
j = answer[j] - 1
else: # ์ด์ ๋ณด๋ค ๋ฎ์ ๋
answer[i] = j + 1
break
print(' '.join(list(map(str, answer))))
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/2493
๋ฐ์ํ
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 1916. ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2020.11.27 |
---|---|
[python] ๋ฐฑ์ค - 2573. ๋น์ฐ (0) | 2020.11.26 |
[python] SWEA - 5986. ์์์ด์ ์ธ ์์ (0) | 2020.11.24 |
[python] ๋ฐฑ์ค - 13458. ์ํ ๊ฐ๋ (์ผ์ฑ SW ์ญ๋ ํ ์คํธ ๊ธฐ์ถ ๋ฌธ์ ) (0) | 2020.11.23 |
[python] SWEA - 6057. ๊ทธ๋ํ์ ์ผ๊ฐํ (0) | 2020.11.22 |