πŸ§‘πŸ»‍πŸ’» Coding Test/πŸ–ŒοΈ BAEKJOON

[ BAEKJOON ] μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”? / 17478 / Python

EarthSea 2024. 7. 23. 16:55

 

λ°±μ€€ 문제 링크

풀이 Github 링크

 

문제

ν‰μ†Œμ— μ§ˆλ¬Έμ„ 잘 λ°›μ•„μ£ΌκΈ°λ‘œ 유λͺ…ν•œ μ€‘μ•™λŒ€ν•™κ΅μ˜ JH κ΅μˆ˜λ‹˜μ€ ν•™μƒλ“€λ‘œλΆ€ν„° μž¬κ·€ν•¨μˆ˜κ°€ 무엇인지에 λŒ€ν•˜μ—¬ λ§Žμ€ μ§ˆλ¬Έμ„ λ°›μ•„μ™”λ‹€.

맀번 μ§ˆλ¬Έμ„ 잘 λ°›μ•„μ£Όμ…¨λ˜ JH κ΅μˆ˜λ‹˜μ΄μ§€λ§Œ κ·ΈλŠ” μ€‘μ•™λŒ€ν•™κ΅κ°€ μžμ‹ κ³Ό λ§žλŠ”κ°€μ— λŒ€ν•œ 고민을 항상 ν•΄μ™”λ‹€.

μ€‘μ•™λŒ€ν•™κ΅μ™€ μžμ‹ μ˜ 길이 λ§žμ§€ μ•Šλ‹€κ³  μƒκ°ν•œ JH κ΅μˆ˜λ‹˜μ€ κ²°κ΅­ μ€‘μ•™λŒ€ν•™κ΅λ₯Ό λ– λ‚˜κΈ°λ‘œ κ²°μ •ν•˜μ˜€λ‹€.

λ– λ‚˜κΈ° μ „κΉŒμ§€λ„ μ œμžλ“€μ„ μƒκ°ν•˜μ…¨λ˜ JH κ΅μˆ˜λ‹˜μ€ μž¬κ·€ν•¨μˆ˜κ°€ 무엇인지 λ¬Όμ–΄λ³΄λŠ” 학생듀을 μœ„ν•œ μž‘μ€ μ„ λ¬Όλ‘œ μžλ™ 응닡 챗봇을 μ€€λΉ„ν•˜κΈ°λ‘œ ν–ˆλ‹€.

JH κ΅μˆ˜λ‹˜μ΄ λ§Œλ“€ μ±—λ΄‡μ˜ 응닡을 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄λ³΄μž.

 

μž…λ ₯

κ΅μˆ˜λ‹˜μ΄ 좜λ ₯을 μ›ν•˜λŠ” μž¬κ·€ νšŸμˆ˜ N(1 ≤ N ≤ 50)이 μ£Όμ–΄μ§„λ‹€.

 

좜λ ₯

좜λ ₯ μ˜ˆμ‹œλ₯Ό 보고 μž¬κ·€ νšŸμˆ˜μ— λ”°λ₯Έ μ±—λ΄‡μ˜ 응닡을 좜λ ₯ν•œλ‹€.

 

예제 μž…λ ₯ 1

2

예제 좜λ ₯ 1

μ–΄λŠ ν•œ 컴퓨터곡학과 학생이 유λͺ…ν•œ κ΅μˆ˜λ‹˜μ„ μ°Ύμ•„κ°€ λ¬Όμ—ˆλ‹€.
"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.
λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.
그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄."
____"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
____"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.
____λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.
____그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄."
________"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
________"μž¬κ·€ν•¨μˆ˜λŠ” 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λΌλ„€"
________라고 λ‹΅λ³€ν•˜μ˜€μ§€.
____라고 λ‹΅λ³€ν•˜μ˜€μ§€.
라고 λ‹΅λ³€ν•˜μ˜€μ§€.

 

예제 μž…λ ₯ 2

4

예제 좜λ ₯ 2

μ–΄λŠ ν•œ 컴퓨터곡학과 학생이 유λͺ…ν•œ κ΅μˆ˜λ‹˜μ„ μ°Ύμ•„κ°€ λ¬Όμ—ˆλ‹€.
"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.
λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.
그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄."
____"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
____"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.
____λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.
____그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄."
________"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
________"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.
________λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.
________그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄."
____________"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
____________"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.
____________λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.
____________그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄."
________________"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?"
________________"μž¬κ·€ν•¨μˆ˜λŠ” 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λΌλ„€"
________________라고 λ‹΅λ³€ν•˜μ˜€μ§€.
____________라고 λ‹΅λ³€ν•˜μ˜€μ§€.
________라고 λ‹΅λ³€ν•˜μ˜€μ§€.
____라고 λ‹΅λ³€ν•˜μ˜€μ§€.
라고 λ‹΅λ³€ν•˜μ˜€μ§€.

 

 


 

λ‚˜μ˜ 풀이

n = int(input())

placeholder_value = '____'

def f(num):
    print(f'{placeholder_value*(n-num)}\\"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?\\"')
    if num > 0:
        print(f'{placeholder_value*(n-num)}\\"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.')
        print(f'{placeholder_value*(n-num)}λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.')
        print(f'{placeholder_value*(n-num)}그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄.\\"')
        f(num-1)
        print(f'{placeholder_value*(n-num)}라고 λ‹΅λ³€ν•˜μ˜€μ§€.')
    else:
        print(f'{placeholder_value*(n-num)}\\"μž¬κ·€ν•¨μˆ˜λŠ” 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λΌλ„€\\"')
        print(f'{placeholder_value*(n-num)}라고 λ‹΅λ³€ν•˜μ˜€μ§€.')
        return 

print('μ–΄λŠ ν•œ 컴퓨터곡학과 학생이 유λͺ…ν•œ κ΅μˆ˜λ‹˜μ„ μ°Ύμ•„κ°€ λ¬Όμ—ˆλ‹€.')
f(n)

λ‚˜λŠ” f-string을 μ‚¬μš©ν•˜μ—¬ ν’€μ—ˆλŠ”λ°, ꡳ이 f-string을 μ“°μ§€ μ•Šμ•„λ„ λ˜λŠ” 것을 λ’€λŠ¦κ²Œ μ•Œκ²Œ λ˜μ—ˆλ‹€.

n = int(input())

def f(num):
    print('____'*(n-num)+'\\"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?\\"')
    if num > 0:
        print('____'*(n-num)+'\\"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.')
        print('____'*(n-num)+'λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.')
        print('____'*(n-num)+'그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄.\\"')
        f(num-1)
        print('____'*(n-num)+'라고 λ‹΅λ³€ν•˜μ˜€μ§€.')
    else:
        print('____'*(n-num)+'\\"μž¬κ·€ν•¨μˆ˜λŠ” 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λΌλ„€\\"')
        print('____'*(n-num)+'라고 λ‹΅λ³€ν•˜μ˜€μ§€.')
        return 

print('μ–΄λŠ ν•œ 컴퓨터곡학과 학생이 유λͺ…ν•œ κ΅μˆ˜λ‹˜μ„ μ°Ύμ•„κ°€ λ¬Όμ—ˆλ‹€.')
f(n)

둜 ν’€μ΄ν•΄μ£Όμ—ˆλ‹€.

n = int(input())

def f(num):
    print('____'*(n-num)+'\\"μž¬κ·€ν•¨μˆ˜κ°€ λ­”κ°€μš”?\\"')
    if num > 0:
        print('____'*(n-num)+'\\"잘 λ“€μ–΄λ³΄κ²Œ. μ˜›λ‚ μ˜›λ‚  ν•œ μ‚° κΌ­λŒ€κΈ°μ— 이세상 λͺ¨λ“  지식을 ν†΅λ‹¬ν•œ 선인이 μžˆμ—ˆμ–΄.')
        print('____'*(n-num)+'λ§ˆμ„ μ‚¬λžŒλ“€μ€ λͺ¨λ‘ κ·Έ μ„ μΈμ—κ²Œ μˆ˜λ§Žμ€ μ§ˆλ¬Έμ„ ν–ˆκ³ , λͺ¨λ‘ μ§€ν˜œλ‘­κ²Œ λŒ€λ‹΅ν•΄ μ£Όμ—ˆμ§€.')
        print('____'*(n-num)+'그의 닡은 λŒ€λΆ€λΆ„ μ˜³μ•˜λ‹€κ³  ν•˜λ„€. 그런데 μ–΄λŠ λ‚ , κ·Έ μ„ μΈμ—κ²Œ ν•œ μ„ λΉ„κ°€ μ°Ύμ•„μ™€μ„œ λ¬Όμ—ˆμ–΄.\\"')
        f(num-1)
    else:
        print('____'*(n-num)+'\\"μž¬κ·€ν•¨μˆ˜λŠ” 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λΌλ„€\\"')
    print('____'*(n-num)+'라고 λ‹΅λ³€ν•˜μ˜€μ§€.')

print('μ–΄λŠ ν•œ 컴퓨터곡학과 학생이 유λͺ…ν•œ κ΅μˆ˜λ‹˜μ„ μ°Ύμ•„κ°€ λ¬Όμ—ˆλ‹€.')
f(n)

return값이 ꡳ이 ν•„μš”ν•˜μ§€ μ•Šμ•„μ„œ return을 μ§€μ›Œμ£Όκ³  ‘라고 λ‹΅λ³€ν•˜μ˜€μ§€.’ λ₯Ό ν•œλ²ˆλ§Œ 적을 수 μžˆλ„λ‘ μ½”λ“œλ₯Ό λ³€κ²½ν•΄μ£Όμ—ˆλ‹€.