https://www.acmicpc.net/problem/24337
์ผ์ชฝ์ ๊ฐํฌ, ์ค๋ฅธ์ชฝ์ ๋จ๋น๊ฐ ์๊ณ , ์ธ๊ฐ๊ณผ ๊ฑด๋ฌผ ์ฌ์ด์ ๊ทธ ๊ฑด๋ฌผ๋ณด๋ค ์์ ๊ฑด๋ฌผ๋ง ์์ด์ผ ํด๋น ๊ฑด๋ฌผ์ ๋ณผ ์ ์๋ค. ๊ฐ์ ๊ฒ๋ ๋ชป๋ณธ๋ค.
๋จผ์ , ๊ฑด๋ฌผ์ ์์ธ N์ ๊ณ ๋ คํ์ง ์๊ณ ์กฐ๊ฑด๋ง ๋ง์กฑ์์ผ ๋ณด์.
์ด ์กฐ๊ฑด๋ง์ ๋ง์กฑ์ํค๋ ๊ฒ์ ๊ฐ๋จํ๋ค.
์ผ์ชฝ๋ถํฐ ๊ฑด๋ฌผ์ด 1๋ถํฐ a๊น์ง ์ค๋ฆ์ฐจ์์ผ๋ก ์๊ณ , ๋ ๊ทธ ์์๋ b๋ถํฐ 1๊น์ง ๋ด๋ฆผ์ฐจ์์ผ๋ก ์์ผ๋ฉด ๋๋ค.
a = 3, b = 3์ธ ๊ฒฝ์ฐ์๋ ๊ฑด๋ฌผ์ด 1 2 3 2 1 ์ด๋ฐ ์์ผ๋ก ์๋ ๊ฒ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ ๊ฐ์ฅ ๊ฐ๋จํ ๊ฒฝ์ฐ์ด๋ค.
๋ค๋ง, a์ b ์ค ๋ ์์ ๋์ด์ ๊ฑด๋ฌผ์ ์กด์ฌํ๋ฉด ์๋๋ค.
์ด๊ฒ ๋ฌด์จ ์๋ฆฌ๋๋ฉด, a = 3, b = 2์ธ ๊ฒฝ์ฐ 1 2 3 2 1 ์ด ์๋๋ผ 1 2 3 1 ์ด์ด์ผ ํ๋ค.
1 2 3 2 1 ์ด๋ฉด ์ค๋ฅธ์ชฝ์์ ๋ด๋ ๊ฑด๋ฌผ์ด 3๊ฐ๋ ๋ณด์ธ๋ค. a > b์ด๋ฏ๋ก ๋ด๋ฆผ์ฐจ์ ๊ฑด๋ฌผ ์ค ๋์ด๊ฐ b์ธ ๊ฑด๋ฌผ์ ์ง์์ค์ผ ์ฌ์ ์ ๊ฐ์ฅ ์์๋ฉด์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค.
์ฌ์ค a์ b๊ฐ ๊ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. a = 3, b = 3์ธ ๊ฒฝ์ฐ์์ 1 2 3 3 2 1๋ ์กฐ๊ฑด์ ๋ง์กฑํ์ง๋ง 1 2 3 2 1์ด ๋ ๊ฐ๋จํ๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์๋ 1 ~ (a-1) ๊น์ง ๊ฑด๋ฌผ์ ์ธ์ฐ๊ณ , max(a, b) ๋์ด์ ๊ฑด๋ฌผ์ ์ธ์ด ๋ค, (b-1) ~ 1 ๊น์ง์ ๊ฑด๋ฌผ์ ์ธ์ฐ๋ฉด ๋๋ค.
์ฌ๊ธฐ๊น์ง๋ง ๊ตฌํํ ์์๋ฅผ ์ฐพ์๋ณด์๋ฉด
a = 3, b = 1์ ๊ฒฝ์ฐ 1 2 3,
a = 3, b = 2์ ๊ฒฝ์ฐ 1 2 3 1,
a = 3, b = 5์ ๊ฒฝ์ฐ 1 2 5 4 3 2 1,
a = 1, b = 4์ ๊ฒฝ์ฐ 4 3 2 1
์ ๋๊ฐ ์์ ์ ์๋ค.
์ด์ ์ฌ๊ธฐ์ N์ ์ถ๊ฐํด ๋ณธ๋ค.
๋ง์ฝ ํ์์ ์ผ๋ก ์ธ์์ผ ํ๋ ๊ฑด๋ฌผ์ ์๊ฐ N๋ณด๋ค ํฌ๋ค๋ฉด ์กฐ๊ฑด์ ๋ง์กฑ์ํฌ ์ ์์ผ๋ -1์ ์ถ๋ ฅํ๊ณ ๋ ๋๋ฉด ๋๋ค.
ํ์ง๋ง ๊ฑด๋ฌผ์ ์๋ณด๋ค N์ด ํฌ๋ค๋ฉด ์ด๋ฏธ ์ธ์ ๋์ ๊ฑด๋ฌผ์ ์ ํด์น๋ฉด์ ์ฌ์ ์ ๊ฐ์ฅ ์์๋ ๋ฐฉ๋ฒ์ ์๊ฐํด์ผ ํ๋ค.
1์ ์ฌ์ ์ ์ ๋ ฌํ ๋ ์ ์ผ ์์ ์ค๋ ์์ด๋ฉด์, ๋งจ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์ ์์ง ์๋ ์ด์ ๋ค๋ฅธ ๊ฑด๋ฌผ์ ๊ฐ๋ ค์ ๋ณด์ด์ง ์๋๋ค.
๋ฐ๋ผ์ ์ด ๋ฌธ์ ์ ํต์ฌ์ 1์ ์๋ณด์ด๋ ํ ์ ์ผ ์ผ์ชฝ์ ๋๊ฒจ๋ฃ๊ธฐ๊ฐ ๋๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋ค ๋ง์กฑํ๋ฉด์ ์ธ์ ๋ ์๋ฌด๋ ๋ชป๋ณด๋ ์์น๋ ๋งจ ์ผ์ชฝ ๊ฑด๋ฌผ์ ์ค๋ฅธ์ชฝ์ด๋ค.
์์ ์์์ N = 6์ด๋ผ๋ ์กฐ๊ฑด์ ์ถ๊ฐํด๋ณด๋ฉด
a = 3, b = 1์ ๊ฒฝ์ฐ 1 1 1 1 2 3,
a = 3, b = 2์ ๊ฒฝ์ฐ 1 1 1 2 3 1,
a = 3, b = 5์ ๊ฒฝ์ฐ -1,
a = 1, b = 4์ ๊ฒฝ์ฐ 4 1 1 3 2 1
์ด๋ ๊ฒ ๋งจ ์ผ์ชฝ ๊ฑด๋ฌผ ์ค๋ฅธ์ชฝ์ 1์ ์์ ๋ง๊ฒ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
์ธ ๋ฒ์งธ ์ผ์ด์ค๋ ๊ฑด๋ฌผ์ ์๊ฐ 7๊ฐ๊ฐ ๋์ด ์กฐ๊ฑด์ ๋ง์กฑ์ํฌ ์ ์๋ค.
N, a, b = map(int, input().split())
answer = []
# N ๊ณ ๋ ค ์ํ๊ณ ์ ์ผ ๊ฐ๋จํ๊ฒ ์กฐ๊ฑด ๋ง์กฑ์ํค๊ธฐ
for i in range(1, a):
answer.append(i)
answer.append(max(a, b))
for i in range(b-1, 0, -1):
answer.append(i)
if len(answer) > N: # ์กฐ๊ฑด์ด ๋ง์กฑ์ด ์๋๋ ๊ฒฝ์ฐ
print(-1)
else:
print(answer[0], end=" ")
for i in range(N-len(answer)): # ํต์ฌ ํฌ์ธํธ
print(1, end=" ")
for i in range(1, len(answer)):
print(answer[i], end=" ")
๋ฌธ์ ๋ฅผ ์๋ชป ์ดํดํด์ ์ข ํค๋งธ์๋ค.
์ด๋ ๋ค ํ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๋ฌธ์ ๊ฐ ๊ณจ๋์ธ ์ด์ ๊ฐ ์์๋ค.
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 9012 ๊ดํธ - ํ์ด์ฌ (0) | 2022.11.20 |
---|---|
๋ฐฑ์ค 11286 ์ ๋๊ฐ ํ - ํ์ด์ฌ (0) | 2022.11.19 |
๋ฐฑ์ค 17478 ์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? - ํ์ด์ฌ (1) | 2022.11.19 |
๋ฐฑ์ค 1244 ์ค์์น ์ผ๊ณ ๋๊ธฐ - ํ์ด์ฌ (0) | 2022.11.18 |
๋ฐฑ์ค 2607 ๋น์ทํ ๋จ์ด - ํ์ด์ฌ (0) | 2022.11.18 |