๋ฌธ์
https://www.acmicpc.net/problem/2840
2840๋ฒ: ํ์ด์ ๋ฐํด
์ฒซ์งธ ์ค์ ๋ง์ง๋ง ํ์ ์์ ํ์ดํ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฌธ์๋ถํฐ ์๊ณ๋ฐฉํฅ์ผ๋ก ๋ฐํด์ ์ ์ด๋์ ์ํ๋ฒณ์ ์ถ๋ ฅํ๋ค. ์ด๋, ์ด๋ค ๊ธ์์ธ์ง ๊ฒฐ์ ํ์ง ๋ชปํ๋ ์นธ์ '?'๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์๋์ด๊ฐ ์ ์ด๋
www.acmicpc.net
ํ์ด
๐์ ๋ ฅ
์ ๋ ฅ์ ์์ ๊ฐ๋ค.
๐์ถ๋ ฅ
์ถ๋ ฅ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
๐ํ์ด
๋ ๋ฒ์งธ ์์๋ฅผ ๋ฐํ์ผ๋ก ํ์ด๋ฅผ ์งํํด ๋ณด์๋ค.
๋ต์
# 1. ์
๋ ฅ๋ฐ๊ธฐ
n, k = map(int, input().strip().split(' '))
# 2. n ๊ธธ์ด์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ ๋ชจ๋ ๋ฌผ์ํ๋ก ์ฑ์ฐ๊ธฐ
alp_list = []
for i in range(0, n):
alp_list.append('?')
# 3. idx = -1๋ก ์ด๊ธฐ ์ค์
idx = -1
# 4. k๋ฒ ๋์ ๋ฐํด๋ฅผ ๋๋ฆฌ๋ฉฐ ๋์จ ์ํ๋ฒณ์ ์ฑ์ฐ๊ธฐ
while k > 0 :
# 4-1. ๊ธ์๊ฐ ๋ฐ๋ ํ์์ ๊ฐ๋ฆฌํค๋ ๊ธ์ ์
๋ ฅ ๋ฐ๊ธฐ
j, alp = input().strip().split(' ')
j = int(j)
# 4-2. ๊ธ์๊ฐ ๋ฐ๋ ํ์๋งํผ idx ๋ณ๊ฒฝํ๊ธฐ
if idx + j < n:
idx += j
else : #idx๊ฐ ํ์ ํ์ ๋์ ๋๋ฌํ๋ฉด ๋ค์ ํ ๋ฐํด ๋๋ ๊ฒ์ ์๋ฏธ
idx = (idx + j) % n
# 4-3. ๋ง์ฝ ํด๋น idx์ ๊ธ์๊ฐ ์กด์ฌํ์ง ์๊ณ
if alp_list[idx] == '?':
# 4-3-1. alp_list์ alp์ ์ด๋ฏธ ์กด์ฌํ๋ฉด ํ์ด์ ๋ฐํด ์กด์ฌ ๋ถ๊ฐ
if alp_list.count(alp) > 0:
print('!')
break
# 4-3-2. alp_list์ alp๊ฐ ์์ผ๋ฉด ํ์ ํ์ ๊ธ์ ์ถ๊ฐ
else:
alp_list[idx] = alp
# 4-4. ๋ง์ฝ ํด๋น idx์ ๊ธ์๊ฐ ์กด์ฌํ๋ค๋ฉด
else:
# 4-4-1. alp์ ๋ค๋ฅธ ๊ธ์๋ผ๋ฉด ํ์ด์ ๋ฐํด ์กด์ฌ ๋ถ๊ฐ
if alp_list[idx] != alp:
print('!')
break
# 4-5. k 1์ฉ ๊ฐ์
k -= 1
# 5. k๊ฐ 0์ด๋ฉด ํ์ด์ ๋ฐํด๊ฐ ๋ง๋ค์ด์ง ๊ฒ์ด๋ฏ๋ก ์๊ณ๋ฐฉํฅ(์ผ์ชฝ ๋ฐฉํฅ)์ผ๋ก ์ถ๋ ฅ
if k == 0:
# 5-1. n๊ฐ์ ๊ธ์ ์ถ๋ ฅ
for i in range(0, n):
# 5-1-1. ๋ง์ฝ idx๊ฐ ๋ฆฌ์คํธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ๋ค๋ฉด ๋ค์ ๋ฆฌ์คํธ์ ๋์ผ๋ก ์ด๋
if idx < 0:
idx = n - 1
print(alp_list[idx], end ='')
idx -= 1
'์๊ณ ๋ฆฌ์ฆ ๐ฉ๐ปโ๐ป > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] 10828 | ์คํ (0) | 2024.11.04 |
---|---|
[BAEKJOON] 9093 | ๋จ์ด ๋ค์ง๊ธฐ (0) | 2024.11.04 |
#14235 (0) | 2023.03.30 |
#2607 (0) | 2023.03.30 |
#2075 (0) | 2023.03.30 |