๐Ÿงฉ Algorithm/SWEA

[SWEA] 1926. ๊ฐ„๋‹จํ•œ 369๊ฒŒ์ž„ (Python/D2)

devCloud 2023. 11. 7. 20:08
728x90
 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


์„ค๋ช…

369 ๊ฒŒ์ž„์ด๋‹ค. 3,6,9๊ฐ€ ํ•œ ๋ฒˆ ๋“ค์–ด๊ฐ€๋ฉด -๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  3,6,9๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ์ผ ๋•Œ๋Š” -๋ฅผ ํšŸ์ˆ˜์— ๋งž๊ฒŒ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

๋‹จ์ˆœ ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค

1. n๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฐ๋‹ค.

2. ๋ฐ˜๋ณต๋ฌธ์—์„œ ๊บผ๋‚ธ ์ •์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.

3. ์ •์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•œ ๋ฆฌ์ŠคํŠธ์— 3, 6, 9๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฉด, ์นด์šดํ„ฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ์ˆ˜๋ฅผ ์„ผ๋‹ค.

4. ์นด์šดํŠธ ํ•œ ๋ฆฌ์ŠคํŠธ์—์„œ key๊ฐ’์ด 3, 6, 9์ธ ๊ฒƒ๋งŒ value๊ฐ’์„ ๊ฒฐ๊ณผ๊ฐ’์— ์ €์žฅํ•œ๋‹ค.

5. ๊ฒฐ๊ณผ๊ฐ’ ๊ฐœ์ˆ˜๋งŒํผ '-'๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

6. 3,6,9๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์ง€ ์•Š์€ ์ˆ˜๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋‹ค๋ฅธ ํ’€์ด

1. ๋ฆฌ์ŠคํŠธ์— 3, 6, 9๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•œ๋‹ค.

2. n๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฐ๋‹ค.

3. ๋ฐ˜๋ณต๋ฌธ์—์„œ ๊บผ๋‚ธ ์ •์ˆ˜๋ฅผ ๋ฌธ์žํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด ํ•˜๋‚˜์”ฉ ๊บผ๋‚ธ๋‹ค.

4. ๊บผ๋‚ธ ๋ฌธ์ž๊ฐ€ 3, 6, 9๊ฐ€ ์ €์žฅ๋œ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๋ฉด +1์”ฉ ์นด์šดํŠธ๋ฅผ ํ•œ๋‹ค.

5. ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ํ™•์ธ์ด ๋๋‚ฌ์œผ๋ฉด ์นด์šดํŠธ ๊ฐ’์ด 0์ธ๊ฒƒ๊ณผ ์•„๋‹Œ ๊ฒƒ์„ ํŒ๋‹จํ•œ๋‹ค.

6. ์นด์šดํŠธ ๊ฐ’์ด 1์ด์ƒ์ด๋ฉด ์นด์šดํŠธ ๊ฐœ์ˆ˜๋งŒํผ '-'๋ฅผ ๊ณฑํ•ด์„œ ์ €์žฅํ•œ๋‹ค.

7. ๋งˆ์ง€๋ง‰์œผ๋กœ  ์ถœ๋ ฅํ•œ๋‹ค.

 

 

Solution

from collections import Counter
n = int(input())
num = []
for i in range(1, n+1):
    num = list(map(int, str(i)))  #์ •์ˆ˜ ๋ถ„๋ฆฌ, ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ์‹ธ์ค˜์•ผ ํ•จ ์•ˆ ๊ทธ๋Ÿฌ๋ฉด map object ๋‚˜์˜ด
    if 3 in num or 6 in num or 9 in num: 
        cnt = 0
        count_num = Counter(num) #์นด์šดํ„ฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ์ˆ˜ ์„ธ๊ธฐ
        for key, value in count_num.items():
            if key == 3 or key == 6 or key == 9: 
                cnt += value #๊ฐœ์ˆ˜ ์ €์žฅ
        print('-'*cnt, end=" ")
    else:
        print(i, end=" ") #369 ์•„๋‹Œ ๊ฑด ์ถœ๋ ฅ

 

๋‹ค๋ฅธ ํ’€์ด

n = int(input())
clap = ['3', '6', '9']

for i in range(1, n+1):
    cnt = 0
    for j in str(i): #์ •์ˆ˜๋ฅผ ๋ฌธ์žํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ํ•˜๋‚˜์”ฉ ๊บผ๋‚ธ๋‹ค.
        if j in clap: #3,6,9๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฉด
            cnt += 1 #์นด์šดํŠธ
    if cnt > 0: #๋งŒ์•ฝ ์นด์šดํŠธ๊ฐ€ 1์ด์ƒ์ด๋ฉด ์ฆ‰, 3,6,9๊ฐ€ ๋“ค์–ด๊ฐ„ ์ˆ˜์ด๋ฉด
        i = '-' * cnt #์นด์šดํŠธ๋งŒํผ '-'์— ๊ณฑํ•˜๊ณ  ์ €์žฅ
    print(i, end=' ') #๋งˆ์ง€๋ง‰์œผ๋กœ ์ถœ๋ ฅ

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

์‰ฝ๊ฒŒ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ’€์ด๋„ ์žˆ์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ํ‘ผ ๊ฒƒ ๊ฐ™๋‹ค. ์ฒ˜์Œ์—” ํ•œ ์ž๋ฆฌ์ผ ๋•Œ์™€ ๋‘ ์ž๋ฆฌ ์ด์ƒ์ผ ๋•Œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ํ’€์—ˆ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ’€๋‹ค๊ฐ€ ์“ธ๋ฐ์—†์ด ์ฝ”๋“œ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์ง„๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตณ์ด ๋ถ„๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ๋‚˜๋ฅผ ๊นจ๋‹ฌ์•„์„œ ํ•œ ์ž๋ฆฌ์ผ ๋•Œ๋„ ๋‹ค ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ”๋”๋‹ˆ ํ•œ๊ฒฐ ๊ฐ„๊ฒฐํ•ด์กŒ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ 369 ๊ฐœ์ˆ˜๋งŒํผ '-'๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์—์„œ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋งŒํผ ๊ฐ„๋‹จํ•œ ๊ฒฐ๊ณผ๋Š” ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค. ์˜ค๋Š˜๋„ ํ•˜๋‚˜ ๋ฐฐ์›Œ๊ฐ„๋‹ค.

728x90