[๋ฐฑ์ค€/python] 1107๋ฒˆ : ๋ฆฌ๋ชจ์ปจ

2021. 8. 10. 16:29

๋ฌธ์ œ

์ˆ˜๋นˆ์ด๋Š” TV๋ฅผ ๋ณด๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ์ฑ„๋„์„ ๋Œ๋ฆฌ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, ๋ฒ„ํŠผ์„ ๋„ˆ๋ฌด ์„ธ๊ฒŒ ๋ˆ„๋ฅด๋Š” ๋ฐ”๋žŒ์—, ์ผ๋ถ€ ์ˆซ์ž ๋ฒ„ํŠผ์ด ๊ณ ์žฅ๋‚ฌ๋‹ค.

๋ฆฌ๋ชจ์ปจ์—๋Š” ๋ฒ„ํŠผ์ด 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ์ˆซ์ž, +์™€ -๊ฐ€ ์žˆ๋‹ค. +๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ์ฑ„๋„์—์„œ +1๋œ ์ฑ„๋„๋กœ ์ด๋™ํ•˜๊ณ , -๋ฅผ ๋ˆ„๋ฅด๋ฉด -1๋œ ์ฑ„๋„๋กœ ์ด๋™ํ•œ๋‹ค. ์ฑ„๋„ 0์—์„œ -๋ฅผ ๋ˆ„๋ฅธ ๊ฒฝ์šฐ์—๋Š” ์ฑ„๋„์ด ๋ณ€ํ•˜์ง€ ์•Š๊ณ , ์ฑ„๋„์€ ๋ฌดํ•œ๋Œ€ ๋งŒํผ ์žˆ๋‹ค.

์ˆ˜๋นˆ์ด๊ฐ€ ์ง€๊ธˆ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ฑ„๋„์€ N์ด๋‹ค. ์–ด๋–ค ๋ฒ„ํŠผ์ด ๊ณ ์žฅ๋‚ฌ๋Š”์ง€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฑ„๋„ N์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฒ„ํŠผ์„ ์ตœ์†Œ ๋ช‡ ๋ฒˆ ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 

์ˆ˜๋นˆ์ด๊ฐ€ ์ง€๊ธˆ ๋ณด๊ณ  ์žˆ๋Š” ์ฑ„๋„์€ 100๋ฒˆ์ด๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ˆ˜๋นˆ์ด๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ฑ„๋„ N (0 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค.  ๋‘˜์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์˜ ๊ฐœ์ˆ˜ M (0 ≤ M ≤ 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์…‹์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์ด ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ™์€ ๋ฒ„ํŠผ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ฑ„๋„ N์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ„ํŠผ์„ ์ตœ์†Œ ๋ช‡ ๋ฒˆ ๋ˆŒ๋Ÿฌ์•ผ ํ•˜๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ •๋‹ต

import sys
input = sys.stdin.readline

button = []

N = int(input())
M = int(input())
if M != 0:
    button.extend(list(map(str, input().split())))

answer = abs(N-100)    # +,-๋กœ๋งŒ ์ด๋™ ํšŸ์ˆ˜

if 100 == N:    # ์ด๋™ํ•˜๋ ค๋Š” ์ฑ„๋„์ด ํ˜„์žฌ ์žˆ๋Š” ์ฑ„๋„์ธ ๊ฒฝ์šฐ
    print(0)
    
elif M == 10: # ๋ชจ๋“  ์ˆซ์ž ๋ฒ„ํŠผ์ด ๊ณ ์žฅ๋‚œ ๊ฒฝ์šฐ : +,-๋กœ๋งŒ ์ด๋™
    print(answer)

else : 
    for count in range(1000001):
        if N-count >= 0:
            ok = True
            for i in str(N-count):
                if i in button:
                    ok = False
                    break
            if ok == True:
                print(min(answer, count + len(str(N-count))))
                break
        
        ok = True
        for i in str(N+count):
            if i in button:
                ok = False
                break
        if ok == True:
            print(min(answer, count + len(str(N+count))))
            break

๊ณ ์žฅ๋‚œ ์ˆซ์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•ด

button ๋ฆฌ์ŠคํŠธ๋ฅผ ์šฐ์„  ๋งŒ๋“ค์–ด ๋‘” ํ›„ M์ด 0์ด ์•„๋‹ ๋•Œ ์ž…๋ ฅ์„ ๋ฐ›์•„ button์— ์ถ”๊ฐ€ํ•œ๋‹ค.

 

์ด๋™ํ•˜๋ ค๋Š” ์ฑ„๋„ N์ด ํ˜„์žฌ ์ฑ„๋„ 100๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•˜๊ณ 

๋ชจ๋“  ์ˆซ์ž ๋ฒ„ํŠผ์ด ๊ณ ์žฅ๋‚ฌ์„ ๊ฒฝ์šฐ +์™€ -๋ฒ„ํŠผ๋งŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— N๊ณผ 100์˜ ์ฐจ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ด์™ธ์˜ ๊ฒฝ์šฐ +,- ๋ฒ„ํŠผ์œผ๋กœ๋งŒ ์ด๋™ํ–ˆ์„ ๋•Œ์™€ ์ˆซ์ž ๋ฒ„ํŠผ์„ ์ด์šฉํ•œ ์ด๋™ ์ค‘ ๋” ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ชฉํ‘œ ์ฑ„๋„ N์—์„œ 1์”ฉ ๋นผ๊ฑฐ๋‚˜ ๋”ํ•˜์—ฌ

ํ•ด๋‹น ์ฑ„๋„๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ๋‹ค์Œ 

์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด +,-๋กœ๋งŒ ์ด๋™ํ–ˆ์„ ๊ฒฝ์šฐ์™€ ๋น„๊ตํ•˜์—ฌ ๋” ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

728x90

BELATED ARTICLES

more