๐Ÿงฉ Algorithm/SWEA

[SWEA] 1288. ์ƒˆ๋กœ์šด ๋ถˆ๋ฉด์ฆ ์น˜๋ฃŒ๋ฒ• (Python/D2)

devCloud 2024. 10. 19. 13:58
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

SW Expert Academy

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

swexpertacademy.com

 

ํ’€์ด

  1. 0 ~ 9 ๊นŒ์ง€ ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ชจ๋‘ -1 ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  2. N์˜ ๋ฐฐ์ˆ˜๋ฅผ ์œ„ํ•ด cnt ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  3. N์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋‹ด์„ ๋ณ€์ˆ˜๋„ ์ƒ์„ฑํ•œ๋‹ค. 
  4. While๋ฌธ์—์„œ ์–‘ ์„ธ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.
    • N์˜ ๋ฐฐ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 
    • map() ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ์— ๋‹ด๋Š”๋‹ค.
    • ๋ฆฌ์ŠคํŠธ์—์„œ ์ •์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ, -1 ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฆฌ์ŠคํŠธ์— ๊ทธ ์ •์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ๋ฆฌ์ŠคํŠธ์— ๋‹ด๋Š”๋‹ค.
    • ๋‹ค ํ™•์ธํ–ˆ์œผ๋ฉด ์ด์ œ -1 ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฆฌ์ŠคํŠธ์—์„œ 0 ~ 9๊นŒ์ง€ ๋ชจ๋“  ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌํ•œ๋‹ค.
    • -1์ด ์•„์ง๋„ ์žˆ์œผ๋ฉด cnt ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ฆ๊ฐ€์‹œ๊ณ , ์—†์œผ๋ฉด while๋ฌธ์„ ์ค‘๋‹จํ•œ๋‹ค.
  5. ๋งˆ์ง€๋ง‰์œผ๋กœ N์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ฐ’์ด ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

if i in nums:
  • nums ๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ฐ’ i ๊ฐ€ ์žˆ์œผ๋ฉด True ๋ฐ˜ํ™˜

 

๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ฐ’์ด ์—†๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

if i not in nums:
  • nums ๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ฐ’ i๊ฐ€ ์—†์œผ๋ฉด True ๋ฐ˜ํ™˜

 

Solution

test_case = int(input())
for tc in range(1, test_case + 1):
    n = int(input())
    nums = [-1]*10
    cnt = 1
    multi_n = n
    while True:
        multi_n = n * cnt
        num_list = list(map(int, str(multi_n))) #์ •์ˆ˜ ๋ถ„๋ฆฌ
        for i in num_list:
            if i not in nums: #๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ฐ’์ด ์—†๋Š”์ง€ ์ฒดํฌ
                nums[i] = i
        #0~9๊นŒ์ง€ ๋ชจ๋“  ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
        if -1 in nums:
            cnt += 1
        else:
            break
    print("#%d %d" %(tc, multi_n))

 

728x90