๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/๊ตฌํ˜„

[๋ฐฑ์ค€]17478๋ฒˆ: ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?

by syLim___ 2023. 5. 4.
728x90

https://www.acmicpc.net/problem/17478

 

17478๋ฒˆ: ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?

ํ‰์†Œ์— ์งˆ๋ฌธ์„ ์ž˜ ๋ฐ›์•„์ฃผ๊ธฐ๋กœ ์œ ๋ช…ํ•œ ์ค‘์•™๋Œ€ํ•™๊ต์˜ JH ๊ต์ˆ˜๋‹˜์€ ํ•™์ƒ๋“ค๋กœ๋ถ€ํ„ฐ ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•˜์—ฌ ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›์•„์™”๋‹ค. ๋งค๋ฒˆ ์งˆ๋ฌธ์„ ์ž˜ ๋ฐ›์•„์ฃผ์…จ๋˜ JH ๊ต์ˆ˜๋‹˜์ด์ง€๋งŒ ๊ทธ๋Š” ์ค‘์•™๋Œ€

www.acmicpc.net


์ด๊ฒŒ ์–ด๋ ค์šฐ๋ฉด ์•ˆ ๋˜๋Š”๋ฐ.. ๋‚œ ์€๊ทผ ์–ด๋ ค์› ๋‹ค ^^

 

์ฝ”๋“œ ์งœ๊ณ  ์ œ์ถœํ•˜๊ณ  ์ •๋‹ต ํŒ์ • ๋ฐ›๊ธฐ๊นŒ์ง€๋Š” ์‹œ๊ฐ„์ด ์–ผ๋งˆ ์•ˆ ๊ฑธ๋ฆฌ๊ธด ํ–ˆ์ง€๋งŒ

๊ทธ๊ฑฐ๋ž‘์€ ๋ณ„๊ฐœ๋กœ ์•ฝ๊ฐ„ ํ’€๋ฉด์„œ.. ๋‚˜ ๋ฐ”๋ณด์ธ๊ฐ€? ์‹ถ์—ˆ์Œ

 

๊ทธ๋ž˜์„œ ๋นจ๋ฆฌ ์ œ์ถœ ๋จผ์ € ํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ์ฝ”๋“œ ๊ตฌ๊ฒฝํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งฐ์—ˆ๋‹ค

 


 

๋”๋ณด๊ธฐ

๋งจ ์ฒ˜์Œ ์ƒ๊ฐ์—†์ด ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ(์ •๋‹ต)

def story(n,k):
  if n==k-1:
    print('์–ด๋А ํ•œ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ด ์œ ๋ช…ํ•œ ๊ต์ˆ˜๋‹˜์„ ์ฐพ์•„๊ฐ€ ๋ฌผ์—ˆ๋‹ค.')
    print('"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"')
    print('"์ž˜ ๋“ค์–ด๋ณด๊ฒŒ. ์˜›๋‚ ์˜›๋‚  ํ•œ ์‚ฐ ๊ผญ๋Œ€๊ธฐ์— ์ด์„ธ์ƒ ๋ชจ๋“  ์ง€์‹์„ ํ†ต๋‹ฌํ•œ ์„ ์ธ์ด ์žˆ์—ˆ์–ด.')
    print('๋งˆ์„ ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋‘ ๊ทธ ์„ ์ธ์—๊ฒŒ ์ˆ˜๋งŽ์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ , ๋ชจ๋‘ ์ง€ํ˜œ๋กญ๊ฒŒ ๋Œ€๋‹ตํ•ด ์ฃผ์—ˆ์ง€.')
    print('๊ทธ์˜ ๋‹ต์€ ๋Œ€๋ถ€๋ถ„ ์˜ณ์•˜๋‹ค๊ณ  ํ•˜๋„ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋А ๋‚ , ๊ทธ ์„ ์ธ์—๊ฒŒ ํ•œ ์„ ๋น„๊ฐ€ ์ฐพ์•„์™€์„œ ๋ฌผ์—ˆ์–ด."')
  if n == 0:
    return
  
  indent = (k-n) * '____'
  
  print('{}"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"'.format(indent))
  
  if n==1:
    print('{}"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"'.format(indent))
  else:
    print('{}"์ž˜ ๋“ค์–ด๋ณด๊ฒŒ. ์˜›๋‚ ์˜›๋‚  ํ•œ ์‚ฐ ๊ผญ๋Œ€๊ธฐ์— ์ด์„ธ์ƒ ๋ชจ๋“  ์ง€์‹์„ ํ†ต๋‹ฌํ•œ ์„ ์ธ์ด ์žˆ์—ˆ์–ด.'.format(indent))
    print('{}๋งˆ์„ ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋‘ ๊ทธ ์„ ์ธ์—๊ฒŒ ์ˆ˜๋งŽ์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ , ๋ชจ๋‘ ์ง€ํ˜œ๋กญ๊ฒŒ ๋Œ€๋‹ตํ•ด ์ฃผ์—ˆ์ง€.'.format(indent))
    print('{}๊ทธ์˜ ๋‹ต์€ ๋Œ€๋ถ€๋ถ„ ์˜ณ์•˜๋‹ค๊ณ  ํ•˜๋„ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋А ๋‚ , ๊ทธ ์„ ์ธ์—๊ฒŒ ํ•œ ์„ ๋น„๊ฐ€ ์ฐพ์•„์™€์„œ ๋ฌผ์—ˆ์–ด."'.format(indent))

  story(n-1,k)

  print('{}๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.'.format(indent))

n = int(input())
story(n,n+1)
print("๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.")

 

๊ณ ์น˜๊ณ  ์‹ถ์—ˆ๋˜ ์ 

 

1. ๋งจ ๋งˆ์ง€๋ง‰ ๋ผ์ธ, "๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€."๋ผ๋Š” ๋ฌธ์žฅ ํ•˜๋‚˜๋ฅผ ๊ผญ ํ•จ์ˆ˜ ๋ฐ–์—์„œ ์ถœ๋ ฅํ•ด์•ผ๋งŒ ํ• ๊นŒ?

n == 0 ์ด๋ผ๋ฉด ์ถœ๋ ฅํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๋Š”๋ฐ? (๋ฌผ๋ก  ๋ฌธ์ œ์กฐ๊ฑด์—์„œ ์ธํ’‹๊ฐ’์œผ๋กœ ์ฃผ์–ด์ง€๋Š” n >= 1 ์ด๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ๊ธด ํ–ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐœ์ธ์ ์œผ๋กœ ๊ต‰์žฅํžˆ ๊ฑฐ์Šฌ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค.)

 

2. ์–ธ๋”๋ฐ” ๊ฐœ์ˆ˜ ๊ณ„์‚ฐํ•œ๋‹ค๊ณ  k๋ผ๋Š” ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋” ๋ฐ›์•˜์—ˆ๋Š”๋ฐ, ๊ตณ์ด ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

 --> ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ n ํ•œ ๊ฐœ ๋ฟ์ด์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ?

 

3. ๋™์ผํ•œ ๋‚ด์šฉ์˜ ๋ฌธ์žฅ ๋ธ”๋ก์„ ํ•จ์ˆ˜ ๋‚ด์— ํ•œ ๋ฒˆ๋งŒ ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ?

๋‚ด ์ฝ”๋“œ์—์„œ๋Š” "์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? ~ ์„ ๋น„๊ฐ€ ์ฐพ์•„์™€์„œ ๋ฌผ์—ˆ์–ด." ๋ผ๋Š” ๋ฌธ์žฅ ๋ธ”๋ก์ด

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋‘ ๋ฒˆ์”ฉ์ด๋‚˜ ๋“ฑ์žฅํ•˜๋‹ˆ๊นŒ ์ข€ ์‹ฌ๊ธฐ๊ฐ€ ๋ถˆํŽธํ–ˆ๋‹ค.

 


์ฝ”๋“œ ์ˆ˜์ •

1. ๊ทธ๋Ÿด ํ•„์š” ์—†์—ˆ๋‹ค.

2. ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ ํ•จ์ˆ˜ ๋ฐ–์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๋กœ ๊ฐ–๋‹ค ์จ๋„ ๋˜๊ธด ํ•œ๋‹ค. ์Šค์Šค๋กœ ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ์ฝ”๋“œ ๊ตฌ๊ฒฝ๋„ ํ•ด๋ณด๋ฉด์„œ ๋‚ด๋ฆฐ ๊ฒฐ๋ก ์€ ํŒŒ๋ผ๋ฏธํ„ฐ 2๊ฐœ ์“ฐ๋Š”๊ฑฐ๋Š” ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™๋‹ค.

3. ํ•œ ๋ฒˆ๋งŒ ์“ธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ตœ์ข… ์ œ์ถœ ์ฝ”๋“œ (์ •๋‹ต)

def story(n,k):
  if n==k:
    print('์–ด๋А ํ•œ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ํ•™์ƒ์ด ์œ ๋ช…ํ•œ ๊ต์ˆ˜๋‹˜์„ ์ฐพ์•„๊ฐ€ ๋ฌผ์—ˆ๋‹ค.')
    
  if n < 0:
    return
  
  indent = (k-n) * '____'
  
  print('{}"์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”?"'.format(indent))
  
  if n==0:
    print('{}"์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋„ค"'.format(indent))
  else:
    print('{}"์ž˜ ๋“ค์–ด๋ณด๊ฒŒ. ์˜›๋‚ ์˜›๋‚  ํ•œ ์‚ฐ ๊ผญ๋Œ€๊ธฐ์— ์ด์„ธ์ƒ ๋ชจ๋“  ์ง€์‹์„ ํ†ต๋‹ฌํ•œ ์„ ์ธ์ด ์žˆ์—ˆ์–ด.'.format(indent))
    print('{}๋งˆ์„ ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋‘ ๊ทธ ์„ ์ธ์—๊ฒŒ ์ˆ˜๋งŽ์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ , ๋ชจ๋‘ ์ง€ํ˜œ๋กญ๊ฒŒ ๋Œ€๋‹ตํ•ด ์ฃผ์—ˆ์ง€.'.format(indent))
    print('{}๊ทธ์˜ ๋‹ต์€ ๋Œ€๋ถ€๋ถ„ ์˜ณ์•˜๋‹ค๊ณ  ํ•˜๋„ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋А ๋‚ , ๊ทธ ์„ ์ธ์—๊ฒŒ ํ•œ ์„ ๋น„๊ฐ€ ์ฐพ์•„์™€์„œ ๋ฌผ์—ˆ์–ด."'.format(indent))

  story(n-1,k)

  print('{}๋ผ๊ณ  ๋‹ต๋ณ€ํ•˜์˜€์ง€.'.format(indent))

n = int(input())
story(n,n)

 

728x90