μ•Œκ³ λ¦¬μ¦˜ πŸ’‘

[D2] 1926. κ°„λ‹¨ν•œ 369κ²Œμž„

@ENFJ 2022. 11. 19. 14:34

문제

 

SW Expert Academy

SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”!

swexpertacademy.com

 

μ½”λ“œ

num = int(input()) # μ •μˆ˜ μž…λ ₯ 값을 num λ³€μˆ˜μ— λ‹΄μ•„λ‘ .
ans = '' # λ¬Έμžμ—΄ λ³€μˆ˜ (좜λ ₯ 값을 담을 λ³€μˆ˜)
condition = ['3','6','9'] # λ¬Έμžμ—΄ 3, 6, 9 λ₯Ό condition μ΄λΌλŠ” 리슀트 λ³€μˆ˜μ— λ‹΄μ•„λ‘ 

for n in range(1, num+1): # 1λΆ€ν„° num(μž…λ ₯받은 수) κΉŒμ§€  ν•˜λ‚˜μ”© 반볡
    cnt = 0 # μ •μˆ˜ν˜• λ³€μˆ˜
    digit = str(n) # 1~num κΉŒμ§€μ˜ 수λ₯Ό ν•˜λ‚˜μ”© λ½‘μ•„μ„œ nμ΄λΌλŠ” λ³€μˆ˜μ— λ‹΄λŠ”λ°, λ³€μˆ˜ n을 문자둜 λ°”κΎΈμ–΄μ„œ digit λΌλŠ” λ³€μˆ˜μ— μ €μž₯.
    for d in digit: # digit λ³€μˆ˜μ—μ„œ ν•˜λ‚˜μ”© 뽑아 d에 λ„£κ³ 
        if d in condition: # λ§Œμ•½ λ³€μˆ˜ d κ°€ condition μ΄λΌλŠ” 리슀트 λ³€μˆ˜μ— μžˆλŠ” κ°’κ³Ό λ™μΌν•œ 값이 μžˆλ‹€λ©΄
            cnt += 1 # cntλ³€μˆ˜ 에 1을 λ”ν•΄μ€Œ.
    if cnt == 0: # λ§Œμ•½ cnt λ³€μˆ˜ 값이 0이라면
        ans += digit # λ¬Έμžμ—΄ λ³€μˆ˜ ans 에 digit λ₯Ό μΆ”κ°€ν•΄μ„œ μ €μž₯함.
    else: # λ§Œμ•½ cnt λ³€μˆ˜ 값이 0이 μ•„λ‹ˆλΌλ©΄
        for _ in range(cnt): # cnt번 반볡
            ans += '-' # - 문자 μΆ”κ°€ν•˜κΈ°
    ans += ' ' # 띄어 μ“°κΈ°

print(ans) # 좜λ ₯

μ½”λ“œ2

n = int(input())

for i in range(1, n+1): # 1~100
    i = str(i)
    clap = i.count('3') + i.count('6') + i.count('9')

    if clap == 0:
        print(i , end=" ")
    else:
        print("-" * clap, end=" ")