https://www.acmicpc.net/problem/1244
# ์ค์์น ์ ์ฅํ ๋ฆฌ์คํธ
๊ท์ฐฎ๊ฒ ์ค์์น ๋ฒํธ๊ฐ 1๋ฒ๋ถํฐ ์์ํ๋ค.
์ด๊ฑธ ๊ณ์ฐํ ๋๋ง๋ค ๊ณ ๋ คํด์ค๋ ๋๊ณ , ๋ฆฌ์คํธ ์์ 0๋ฒ์ ์ถ๊ฐํด๋์๋ ๋๋ค. ๋๋ ํ์๋ก ๋๊ณ ํ์๋ค.
์ทจํฅ๊ป ์์ฑํ๋ฉด ๋๋ค.
๋จ, ํ์๋ ์ฌํ์์ด ์์ง๋ ์์ 0๋ฒ ์ค์์น์ ์ผ๊ณ ๋์ง ์๋๋ก ์ ์ํด์ผ ํ๋ค.
# ์ค์์น ๋ฐ๊พธ๋ ํจ์
์ด๊ฒ๋ ์ทจํฅ๊ป ์์ฑํ๋ฉด ๋๋ค.
dictionary์ {1:0, 0:1} ์ด๋ฐ ์์ผ๋ก ๋ฃ์ด๋ ๋๊ณ if๋ฌธ ๋นก๊ตฌํํด๋ ๋๋ค.
# ๋จ์์ผ ๋
for๋ฌธ์ ์ฌ์ฉํด๋ ๋๋ค. ๋๋ while๋ฌธ์ ์ด์ฉํด์ i๋ฅผ 1๋ถํฐ ํ๋์ฉ ๋๋ ค ๊ฐ๋ฉด์ ๋ฒ์์ ๋ง๋ no * i๋ฅผ ๋ฐ๊ฟ์คฌ๋ค.
# ์ฌ์์ผ ๋
์ผ๋จ ๋๋ฅธ ์ค์์น์ ์ํ๋ฅผ ๋ฐ๊ฟ์ค๋ค.
์ดํ i๋ฅผ 1๋ถํฐ ํ๋์ฉ ์ฆ๊ฐ์ํค๋ฉฐ ์ค์์น ± i ๊ฐ ๋ฆฌ์คํธ ๋ฒ์ ๋ด์ด๊ณ , ๋์ ์ํ๊ฐ ๊ฐ๋ค๋ฉด ๋ ๋ค ์ํ๋ฅผ ๋ฐ๊ฟ์ค๋ค.
์กฐ๊ฑด์ ๋ง์กฑ์ํค์ง ๋ชปํ ๋ ๋ฐ๋ก breakํด์ ๋น ์ ธ ๋์ ์ค๋ค.
# ์ถ๋ ฅ
1๋ฒ ~ n๋ฒ ์ค์์น์ ์ํ๋ฅผ ์ถ๋ ฅํด์ค๋ค.
20๊ฐ๋ฅผ ์ถ๋ ฅํ ๋๋ง๋ค ๊ผญ ์ค๋ฐ๊ฟ์ ํด์ผํ๋ค.
๊ฐ๋ฅํ ์ค๋ต ์์ธ : ์ถ๋ ฅ ์ ์ค๋ฐ๊ฟ, ๋ฒ์ ์ฒดํฌ ๋ค์ ํ๊ธฐ(์ฌํ์์ด switch ๋ฆฌ์คํธ์์ index 0๋ฒ ๋ง์ง๊ณ ์๋ ์ง)
n = int(input())
switch = [0] + list(map(int, input().split())) # ์ค์์น ์ํ ์ ์ฅ
# ์ค์์น ๋ฐ๊พธ๋ ํจ์
def change(x):
global switch
switch[x] = abs(switch[x]-1)
for _ in range(int(input())):
gender, no = map(int, input().split())
i = 1
# ๋จ์์ผ ๋
if gender == 1:
while no * i <= n:
change(no * i)
i += 1
# ์ฌ์์ผ ๋
elif gender == 2:
change(no)
while 1 <= no-i and no+i <= n and switch[no-i] == switch[no+i]:
change(no-i)
change(no+i)
i += 1
# ์ถ๋ ฅ
for i in range(1, n+1):
print(switch[i], end=" ")
if not i % 20:
print()
์ค์์น ๋ฒํธ๋ฅผ ํ๋์ฉ ์ค์ฌ์ ์ฐ๊ฒจ ๋ฃ์ด์ ํ๋ฉด ์๋์ ๊ฐ๋ค.
+ map์ ์ด์ฉํด์ ์ค์์น ์ํ๋ฅผ ๋ฐ๊ฟ์ฃผ์๋ค.
์ฌ์ค ๋๊ฐ๋ค.
n = int(input())
switch = list(map(int, input().split())) # ์ค์์น ์ํ ์ ์ฅํ ๋ฆฌ์คํธ
change = {1: 0, 0: 1} # ์ค์์น ๋ฐ๊พธ๋ dictionary
for _ in range(int(input())):
gender, no = map(int, input().split())
i = 1
# ๋จ์์ผ ๋
if gender == 1:
while no * i - 1 < n:
switch[no*i-1] = change[switch[no*i-1]]
i += 1
# ์ฌ์์ผ ๋
elif gender == 2:
switch[no-1] = change[switch[no-1]]
while 1 <= no-i and no+i < n+1 and switch[no-i-1] == switch[no-1+i]:
switch[no-1-i] = change[switch[no-1-i]]
switch[no-1+i] = change[switch[no-1+i]]
i += 1
# ์ถ๋ ฅ
for i in range(n):
print(switch[i], end=" ")
if i % 20 == 19:
print()
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 24337 ๊ฐํฌ์ ํ - ํ์ด์ฌ (5) | 2022.11.19 |
---|---|
๋ฐฑ์ค 17478 ์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? - ํ์ด์ฌ (1) | 2022.11.19 |
๋ฐฑ์ค 2607 ๋น์ทํ ๋จ์ด - ํ์ด์ฌ (0) | 2022.11.18 |
๋ฐฑ์ค A+B, A-B, A*B, A/B - ์๋ฐ (0) | 2022.04.04 |
๋ฐฑ์ค 1919 ์ ๋๊ทธ๋จ ๋ง๋ค๊ธฐ - ํ์ด์ฌ (0) | 2022.03.26 |