[๋ฐฑ์ค 24337 ๐ฅ] ๊ฐํฌ์ ํ
๋ฌธ์
์ผ์ง์ ์ผ๋ก ๋ค์ํ ๋์ด์ ๊ฑด๋ฌผ๋ค์ด N๊ฐ ์กด์ฌํฉ๋๋ค. ๊ฐํฌ๋ ๊ฑด๋ฌผ๋ค์ ์ผ์ชฝ์, ๋จ๋น๋ ๊ฑด๋ฌผ๋ค์ ์ค๋ฅธ์ชฝ์ ์์ต๋๋ค. ์ผ์ง์ ์์ ๊ฐํฌ์ ๋จ๋น, ๊ฑด๋ฌผ๋ค์ ์๋์ ๊ฐ์ ์์๋ก ๋ฐฐ์น๋์ด ์์ต๋๋ค.
- ๊ฐํฌ์ ์ค๋ฅธ์ชฝ์๋ 1๋ฒ ๊ฑด๋ฌผ์ด ์์ต๋๋ค.
- x๊ฐ 1์ด์ N-1์ดํ์ ์ ์์ผ ๋, x๋ฒ ๊ฑด๋ฌผ์ ์ค๋ฅธ์ชฝ์๋ x+1๋ฒ ๊ฑด๋ฌผ์ด ์์ต๋๋ค.
- N๋ฒ ๊ฑด๋ฌผ์ ์ค๋ฅธ์ชฝ์๋ ๋จ๋น๊ฐ ์์ต๋๋ค.
๊ฐํฌ์ ๋จ๋น๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ์๋์ ๊ฐ์ต๋๋ค.
- ๊ฐํฌ๋ 1๋ฒ ๊ฑด๋ฌผ์ ๋ณผ ์ ์์ต๋๋ค.
- k๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ์ผ์ชฝ์ ์๋ ๊ฑด๋ฌผ๋ค์ด ๋ชจ๋ k๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ๋์ด๊ฐ ๋ฎ๋ค๋ฉด, ๊ฐํฌ๋ k๋ฒ ๊ฑด๋ฌผ์ ๋ณผ ์ ์์ต๋๋ค.
- ๋จ๋น๋ N๋ฒ ๊ฑด๋ฌผ์ ๋ณผ ์ ์์ต๋๋ค.
- k๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ์ค๋ฅธ์ชฝ์ ์๋ ๊ฑด๋ฌผ๋ค์ด ๋ชจ๋ k๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ๋์ด๊ฐ ๋ฎ๋ค๋ฉด, ๋จ๋น๋ k๋ฒ ๊ฑด๋ฌผ์ ๋ณผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, N์ด 3์ด๊ณ , 1๋ฒ ๊ฑด๋ฌผ์ ๋์ด๊ฐ 1, 2๋ฒ ๊ฑด๋ฌผ์ ๋์ด๊ฐ 3, 3๋ฒ ๊ฑด๋ฌผ์ ๋์ด๊ฐ 2๋ผ๊ณ ํ๊ฒ ์ต๋๋ค.

๊ฐํฌ๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ๊ณผ ๋จ๋น๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ์๋ ๊ฐ๊ฐ 2๊ฐ์ ๋๋ค. ์ด๋ฅผ ๊ฐ๊ฐ ๋ ธ๋์, ์ฐ๋ณด๋ผ์์ผ๋ก ํ์ํ๊ฒ ์ต๋๋ค.
๊ฐํฌ๊ฐ 3๋ฒ ๊ฑด๋ฌผ์ ๋ณผ ์ ์๋ ์ด์ ๋ 3๋ฒ ๊ฑด๋ฌผ ์ผ์ชฝ์ ์๋ 2๋ฒ ๊ฑด๋ฌผ์ ๋์ด๊ฐ 3๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ๋จ๋น๊ฐ 1๋ฒ ๊ฑด๋ฌผ์ ๋ณผ ์ ์๋ ์ด์ ๋ 1๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ์ค๋ฅธ์ชฝ์ ์๋ 2๋ฒ ๊ฑด๋ฌผ๊ณผ 3๋ฒ ๊ฑด๋ฌผ์ด 1๋ฒ ๊ฑด๋ฌผ๋ณด๋ค ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐํฌ์ ๋จ๋น ์ฌ์ด์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์ N๊ณผ ๊ฐํฌ๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์ a, ๋จ๋น๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์ b๊ฐ ์ฃผ์ด์ง๋๋ค. ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์๋ N๊ฐ์ ๊ฑด๋ฌผ ๋์ด ์ ๋ณด๋ฅผ ์ถ๋ ฅํด ์ฃผ์ธ์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฑด๋ฌผ์ ๊ฐ์ N, ๊ฐํฌ๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์ a, ๋จ๋น๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์ b๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ฃผ์ด์ง๋๋ค.
์ถ๋ ฅ
๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง๋ ๊ฑด๋ฌผ๋ค์ ๋์ด ์ ๋ณด๊ฐ 1๊ฐ ์ด์ ์กด์ฌํ๋ ๊ฒฝ์ฐ N๊ฐ์ ๊ฑด๋ฌผ ๋์ด ์ ๋ณด ์ค ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์ ๊ฒ์ ์ถ๋ ฅํด ์ฃผ์ธ์. ์ถ๋ ฅ ํ์์ ๋ค์์ ๋ง์กฑํด์ผ ํฉ๋๋ค.
- 1๋ฒ ๊ฑด๋ฌผ, ... , N๋ฒ ๊ฑด๋ฌผ์ ๋์ด๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด ์ฃผ์ธ์. ์ถ๋ ฅํ๋ ์๋ค์ด ๋ชจ๋ ๋ค๋ฅผ ํ์๋ ์์ต๋๋ค.
- ๋์ด๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ ์์ฌ์ผ ํฉ๋๋ค.
๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง๋ ๊ฑด๋ฌผ๋ค์ ๋์ด ์ ๋ณด๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ์ฒซ ์ค์ -1์ ์ถ๋ ฅํด ์ฃผ์ธ์.

๋ฌธ์ ํ์ด
import sys
n,a,b=map(int, sys.stdin.readline().split(' '))
# ๊ฑด๋ฌผ์ ์ต๊ณ ๋์ด๋ max(a,b)
maxheight=max(a,b)
# a-1๊น์ง ์ค๋ฆ์ฐจ์ + ์ต๊ณ ๊ฑด๋ฌผ ๋์ด + b-1๋ถํฐ ๋ด๋ฆผ์ฐจ์
buildings=list(range(1,a))+[maxheight]+list(range(b-1,0,-1))
# ๋ง๋ค์ด์ง ๊ฑด๋ฌผ๋ค์ ๊ฐ์๊ฐ n๋ณด๋ค ํฌ๋ค๋ฉด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ
if len(buildings)>n:
print(-1)
sys.exit(0)
# n๋ณด๋ค ์๋ค๋ฉด ๊ฐํฌ๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์๋ฅผ ์๋ฐํ์ง ์์ผ๋ฉด์ ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์ชฝ์ ์์นํ ๊ฑด๋ฌผ ๋ฐฐ์ด์ ๋ง๋ค๊ธฐ ์ํด์
# 1์ ๋ฃ์ ์ ์๋ ๋งํผ ์ผ์ชฝ์ ๋ฃ์ด์ค๋ค
# ๋ฐ๋ก : 3 1 2
while len(buildings)<n:
buildings.insert(1,1)
for b in range(n):
print(buildings[b], end=' ')
ํด๊ฒฐ ์์ด๋์ด๋ง ๋์ถํ๋ฉด ๊ตฌํ์ ๋งค์ฐ ์ฌ์ด ๋ฌธ์ ๋ค!
- ๋จผ์ , ๊ฑด๋ฌผ์ ๊ฐ์ n๊ฐ๋ฅผ ๋ง์กฑํ๋ ๊ฒ์ ๋ฐฐ์ ํ๊ณ ์๊ฐํ ์ํ๋ก, ๊ฐํฌ๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์๊ฐ a๊ฐ, ๋จ๋น๊ฐ ๋ณผ ์ ์๋ ๊ฑด๋ฌผ์ ๊ฐ์๊ฐ b๊ฐ์ธ ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์ชฝ์ ์์นํ๋ ์์ด์ ๋ง๋ค์ด๋ณด์
- a์ b ์ค ๋ ๋์ ์๊ฐ ์ต๊ณ ๊ฑด๋ฌผ ๋์ด๊ฐ ๋๊ณ , ์ต๊ณ ๊ฑด๋ฌผ ๋์ด ์ผ์ชฝ์ผ๋ก๋ 1๋ถํฐ a-1๊น์ง ์ค๋ฆ์ฐจ์์ธ ๋ฐฐ์ด, ์ค๋ฅธ์ชฝ์ผ๋ก๋ b-1๋ถํฐ 1๊น์ง ๋ด๋ฆผ์ฐจ์์ธ ๋ฐฐ์ด์ด ์์นํ๋ฉด a,b๋ฅผ ๋ง์กฑํ๋ ์์ด์ด ๋ง๋ค์ด์ง๋ค.
- = [1๋ถํฐ a-1๊น์ง ์ค๋ฆ์ฐจ์ ๋ฐฐ์ด] + [์ต๊ณ ๊ฑด๋ฌผ ๋์ด] + [b-1๋ถํฐ 1๊น์ง ๋ด๋ฆผ์ฐจ์์ธ ๋ฐฐ์ด]
- ์ ๋ฐฉ์๋๋ก ์์ด์ ๋ง๋ค์ด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
- ์ด์ a์ b์ ๊ฐ์๋ฅผ ๋ง์กฑํ๋ฉด์ ๊ฑด๋ฌผ์ ๊ฐ์ n๋ ๋ง์กฑํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
- ์ฐ์ ์ ๊ณผ์ ์ ๊ฑฐ์ณ ๋ง๋ค์ด์ง ์์ด์ ๊ธธ์ด๊ฐ n๋ณด๋ค ํฌ๋ค๋ฉด, ๊ทธ ๊ฐ์ ๋ถ๊ฐ๋ฅํ ๊ฐ์ด๋ฏ๋ก -1์ ์ถ๋ ฅํ๊ณ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค.
- ์์ด์ ๊ธธ์ด๊ฐ n๋ณด๋ค ์์ ๊ฒฝ์ฐ, a,b๊ฐ์ ๋ง์กฑํ๋ฉด์ ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์ชฝ์ ์์นํ๋ ค๋ฉด ๋งจ ์ผ์ชฝ ๊ธฐ์ค ์ค๋ฅธ์ชฝ์ ๊ฐ์ฅ ์์ ๋์ด ๊ฐ์ธ 1์ ์์ด์ ๊ธธ์ด๊ฐ n์ด ๋ ๋๊น์ง ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.