μ•Œκ³ λ¦¬μ¦˜

[μ½”λ“œνŠΈλ¦¬ μ±Œλ¦°μ§€] 7μ£Όμ°¨ (10/17-10/23), λ°±νŠΈλž˜ν‚Ή

mingzoo 2023. 10. 23. 13:59

두λ‘₯

7μ£Όμ°¨..

654 -> 610 😢‍🌫️

λ‹€μ‹œ 점수 볡귀..

μ‹€λ ₯진단평가 ν’€λ©΄μ„œ λ°±νŠΈλž˜ν‚Ή λ¬Έμ œμ—μ„œ λ§‰ν˜”λŠ”λ°, μ–΄μ–΄...μ—¬κΈ°μ„œ λ§‰νžˆλ©΄ μ•ˆλ˜λŠ”λ°...? 생각이 λ“€μ—ˆλ‹€.

κ³΅λΆ€ν–ˆμ§€λ§Œ λ¬Έμ œμ— 따라 ν’€μˆ˜λ„~ λͺ»ν’€μˆ˜λ„~ μžˆλŠ”κ±°λ‹ˆκΉŒ μ μˆ˜μ— μ—°μ—°ν•˜λ©΄ μ•ˆλ˜λŠ”λ°, μ•Œλ©΄μ„œλ„ μ­‰μ­‰ μƒμŠΉμ„Έλ‘œ κ°€λ‹€κ°€ 막상 ν•˜λ½μ„Έλ‘œ κ°€λ‹ˆκΉŒ 마음이 쫌 μ•„νŒ λ‹€...

νž˜λ“€κ²Œ 올린 μ μˆ˜μ˜€λŠ”λ°,,

ν•˜μ§€λ§Œ, 이 κΈ°νšŒμ— λ°±νŠΈλž˜ν‚Ή μž¬μ •λΉ„ν•˜λ©΄μ„œ λ‹€μ‹œ ν•œλ²ˆ ν’€μ–΄λ΄€λ‹€.

λ°±νŠΈλž˜ν‚Ή μΉ΄ν…Œκ³ λ¦¬ 문제λ₯Ό ν’€λ©΄μ„œ μ–΄λ €μ›Œμ„œ 해섀을 λ³Έ λ¬Έμ œλ“€λ„ λ§Žμ•„μ„œ 이번 κΈ°νšŒμ— λ‹€μ‹œ ν’€κ²Œ λ˜μ–΄μ„œ 였히렀 λ‹€ν–‰μ΄μ—ˆλ‹€!

였히렀 μ’‹μ•„

κ·Έλž˜μ„œ μ΄λ²ˆμ£ΌλŠ” κ°œλ…μ„ λ³΅μŠ΅ν•œλ‹€κΈ° 보단, ν’€μ—ˆλ˜ λ¬Έμ œλ“€μ„ λ‹€μ‹œ ν’€μ–΄λ³΄λŠ” 그런 μ£Όμ°¨κ°€ λ˜μ—ˆλ‹€

 

ν•΄κ²°ν•œ 문제

# μ•„λ¦„λ‹€μš΄ 수

이 λ¬Έμ œλŠ” 처음 λ°±νŠΈλž˜ν‚Ή ν•™μŠ΅ν–ˆμ„ λ•Œ, 풀이λ₯Ό 보고도 계속 이해λ₯Ό λͺ»ν•΄μ„œ 보고 또보고 보고 또 λ΄€μ—ˆλ˜ λ¬Έμ œλ‹€.

그러고 λ‚˜μ„œ μ§€κΈˆ 2μ£Όλ§Œμ— λ‹€μ‹œ ν’€λ©΄μ„œ 풀이λ₯Ό μ „ν˜€ 보지 μ•Šκ³  λ‚΄κ°€ 생각해낸 λ‘œμ§λŒ€λ‘œ ν’€μ–΄λ³΄μ•˜λ‹€.

λ¬Έμ œλŠ” μ•„λž˜μ™€ κ°™λ‹€.

1이상 4μ΄ν•˜μ˜ 숫자둜만 이루어져 μžˆμœΌλ©΄μ„œ, μ •ν™•νžˆ ν•΄λ‹Ή 숫자만큼 연달아 같은 μˆ«μžκ°€ λ‚˜μ˜€λŠ” 숫자λ₯Ό μ•„λ¦„λ‹€μš΄ 수 라고 λΆ€λ¦…λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ 1333221λŠ” 1이 1번, 3이 3번, 2κ°€ 2번 그리고 1이 1번 μ—°μ†ν•˜μ—¬ λ‚˜μ˜€λ―€λ‘œ μ•„λ¦„λ‹€μš΄ 수 μž…λ‹ˆλ‹€.
μ΄λ•Œ λ™μΌν•œ μˆ«μžμ— λŒ€ν•΄ 연달아 같은 숫자의 묢음이 λ‚˜μ˜€λŠ” 것 λ˜ν•œ μ•„λ¦„λ‹€μš΄ 수 μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 111, 22222222와 같은 수 μ—­μ‹œ 1이 1번 λ‚˜μ˜¨ 것이 3번 λ°˜λ³΅λ˜μ—ˆκ³ , 2κ°€ 2번 λ‚˜μ˜¨ 것이 4번 λ°˜λ³΅λ˜μ—ˆλ‹€κ³  ν•  수 있기 λ•Œλ¬Έμ— μ•„λ¦„λ‹€μš΄ 수라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.λ‹€λ§Œ, 222의 κ²½μš°μ—λŠ” 2κ°€ 2번 λ‚˜μ˜¨ λ’€, λ‹€μ‹œ 2κ°€ 1번 λ‚˜μ™”μœΌλ―€λ‘œ μ•„λ¦„λ‹€μš΄ μˆ˜κ°€ μ•„λ‹™λ‹ˆλ‹€.
n자리 μ•„λ¦„λ‹€μš΄ μˆ˜κ°€ λͺ‡ 개 μžˆλŠ”μ§€λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•΄λ³΄μ„Έμš”.

 

λ‚˜μ˜ 풀이 μ „λž΅
1. κΈ°λ³Έ λ°±νŠΈλž˜ν‚Ή μž¬κ·€(1λΆ€ν„° 4κΉŒμ§€)

2. + 쑰건(μ§€κΈˆκΉŒμ§€ 배열에 λ„£μ–΄μ ΈμžˆλŠ” 수 + 넣을 수 <= 자릿수 n)

 

λ‚˜μ˜ 풀이

n = int(input())
arr=[]
cnt = 0

def beautiful(curr_num):
    global cnt
    if curr_num == n:
        cnt += 1

    for i in range(1, 5):
        if len(arr)+i<=n:
            for _ in range(i):
                arr.append(i)
            beautiful(curr_num + i)
            for _ in range(i):
                arr.pop()

beautiful(0)
print(cnt)

 

ν† λ‘ μœΌλ‘œ ν•΄κ²°ν•˜λ‹€πŸ‘€

이 문제λ₯Ό ν’€λ©΄μ„œ λ‘œμ§μ€ λ§žλŠ”κ±° 같은데 닡이 계속 μ•ˆλ‚˜μ™€μ„œ μ—„μ²­ 고민을 ν–ˆλ˜ 뢀뢄이 μžˆμ—ˆλ‹€.

계속 ν˜Όμžμ„œ 머리λ₯Ό 싸맀고 ν•˜λ‹€κ°€ μ™œ μ•ˆλ˜λŠ”μ§€ μ•Œμ•„μ•Όκ² μ–΄μ„œ μ½”λ“œνŠΈλ¦¬μ˜ ν† λ‘  κΈ°λŠ₯을 μ‚¬μš©ν•΄μ„œ λΉ λ₯΄κ²Œ κ·Έ 닡을 얻을 수 μžˆμ—ˆλ‹€.

질문
λ‹΅λ³€

μ΄λ ‡κ²Œ μ§ˆλ¬Έμ„ 남기고, 사진과 같은 닡변을 받을 수 μžˆμ—ˆλ‹€.

닡변을 λ³΄λ‹ˆ λ°”λ‘œ λ‚΄κ°€ 저지λ₯Έ μ‹€μˆ˜κ°€ 무엇인지 λ‹¨λ²ˆμ— μ•Œ 수 μžˆμ—ˆλ‹€.

iλ²ˆμ„ λŒλ €μ„œ 배열에 λ„£μ–΄μ€¬μœΌλ©΄μ„œ curr_num + 1을 ν•΄μ£Όκ³  μžˆμ—ˆλ˜ 것이닀. curr_num + i둜 λ°”κΏ¨λ”λ‹ˆ λ°”λ‘œ ν•΄κ²°λ˜μ—ˆλ‹€.

 

ν† λ‘  탭은 처음 μ‚¬μš©ν•΄λ΄€λŠ”λ°, 닡변도 λΉ λ₯΄κ²Œ λΌμ„œ ν•΄μ„€κ³ΌλŠ” λ‹€λ₯Έ λ‚΄ ν’€μ΄μ˜ λ¬Έμ œμ μ„ μ•Œ 수 μžˆλ‹€λŠ” μ μ—μ„œ λ„ˆλ¬΄ λͺ…μΎŒν–ˆλ‹€!

728x90