๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€

[BAEKZOON] 2840. ํ–‰์šด์˜ ๋ฐ”ํ€ด

by flowing1ife 2024. 3. 14.

๋ฌธ์ œ

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