๊ด€๋ฆฌ ๋ฉ”๋‰ด

Algo ์“ฐ์ž

[BaekJoon] 1107 ๋ฆฌ๋ชจ์ปจ ๋ณธ๋ฌธ

๐Ÿ’ฏ CodingTest/BaekJoon

[BaekJoon] 1107 ๋ฆฌ๋ชจ์ปจ

S.Honey 2022. 4. 14. 15:33

โ–ถ ๋ฌธ์ œ :

 

 

โ–ถ ์ฝ”๋“œ : 

 

N = int(input())
M = int(input())
if M > 0 :
    errorBtn = list(map(int, input().split()))
else:
    errorBtn =[]

answer = abs(100 - N)

for num in range(1000001):
    # ์ตœ๋Œ€ N์€ 500,000 ๊นŒ์ง€ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ™์€ ์ž๋ฆฌ๋กœ ์ƒ๊ฐํ–ˆ์„๋•Œ 1,000,000 ๊นŒ์ง€ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฒ”์œ„๋ฅผ ์ด์™€ ๊ฐ™์ด ์„ค์ •
    # 1,000,000์„ ๋„˜์–ด๊ฐ€๋Š” ์ˆซ์ž๋ถ€ํ„ฐ๋Š” 0 ~ 500,000์‚ฌ์ด์˜ ์ˆซ์ž๋กœ ์ปค๋ฒ„ ๊ฐ€๋Šฅ
    count = 0
    for c in str(num):
        if int(c) in errorBtn:
            break
        else:
            count += 1

    if count == len(str(num)):
        answer = min(answer, (len(str(num)) + abs(N-num)))

print(answer)

 

โ–ถ ๋ฌธ์ œ ํ’€์ด

 

1. ์ „์ฒด ํƒ์ƒ‰ ๋ฒ”์œ„ ์„ค์ • : 

 - ์ตœ๋Œ€ N์€ 500,000 ๊นŒ์ง€ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ™์€ ์ž๋ฆฌ๋กœ ์ƒ๊ฐํ–ˆ์„๋•Œ 1,000,000 ๊นŒ์ง€ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฒ”์œ„๋ฅผ ์ด์™€ ๊ฐ™์ด ์„ค์ •
 - 1,000,000์„ ๋„˜์–ด๊ฐ€๋Š” ์ˆซ์ž๋ถ€ํ„ฐ๋Š” 0 ~ 500,000์‚ฌ์ด์˜ ์ˆซ์ž๋กœ ์ปค๋ฒ„ ๊ฐ€๋Šฅ
 
2. ์ดํ›„ ๋ฐ˜๋ชฉํ•˜๋ฉฐ errorBtn ๋‚ด์— ์žˆ๋Š” ์ˆ˜๊ฐ€ ํฌํ•จ๋œ ์ˆซ์ž๋ผ๋ฉด ์—ฌ์ง€์—†์ด ๋„˜๊ธฐ๊ณ , ๋งŒ์ผ ์ˆซ์ž ์กฐํ•ฉ์ด errorBtn์— ์—†๋‹ค๋ฉด ํ˜„์žฌ answer์™€ ๋น„๊ตํ›„ ์ž‘์€๊ฐ’์„ answer์— ์ €์žฅ
 
3. answer๋Š” ์ดˆ๊ธฐ ๋‹จ์ˆœํžˆ + - ๋ฒ„ํŠผ๋งŒ ๋ˆ„๋ฅธ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์˜€์œผ๋ฉฐ 100 - N(๋ชฉํ‘œ ์ฑ„๋„๊ฐ’) ์˜ ์ ˆ๋Œ€๊ฐ’์„ ๊ฐ€์ง„๋‹ค => ์˜จ์ „ํžˆ 100๋ฒˆ๋ถ€ํ„ฐ `+/- `๋กœ๋งŒ ์ด๋™ํ•œ ๊ฒฝ์šฐ์˜ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ํšŸ์ˆ˜(= ์ดˆ๊ธฐ๊ฐ’)