๐Ÿ“š Study/Baekjoon

[Gold IV] 1107 - ๋ฆฌ๋ชจ์ปจ

์œฐ๊ฐฑ 2025. 4. 25. 16:32

๋ฌธ์ œ

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

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

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

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

์ž…๋ ฅ

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

์ถœ๋ ฅ

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

์˜ˆ์ œ ์ž…๋ ฅ 1 ๋ณต์‚ฌ

5457
3
6 7 8

์˜ˆ์ œ ์ถœ๋ ฅ 1 ๋ณต์‚ฌ

6

์˜ˆ์ œ ์ž…๋ ฅ 2 ๋ณต์‚ฌ

100
5
0 1 2 3 4

์˜ˆ์ œ ์ถœ๋ ฅ 2 ๋ณต์‚ฌ

0

์˜ˆ์ œ ์ž…๋ ฅ 3 ๋ณต์‚ฌ

500000
8
0 2 3 4 6 7 8 9

์˜ˆ์ œ ์ถœ๋ ฅ 3 ๋ณต์‚ฌ

11117

์˜ˆ์ œ ์ž…๋ ฅ 4 ๋ณต์‚ฌ

100
3
1 0 5

์˜ˆ์ œ ์ถœ๋ ฅ 4 ๋ณต์‚ฌ

0

์˜ˆ์ œ ์ž…๋ ฅ 5 ๋ณต์‚ฌ

14124
0

์˜ˆ์ œ ์ถœ๋ ฅ 5 ๋ณต์‚ฌ

5

์˜ˆ์ œ ์ž…๋ ฅ 6 ๋ณต์‚ฌ

1
9
1 2 3 4 5 6 7 8 9

์˜ˆ์ œ ์ถœ๋ ฅ 6 ๋ณต์‚ฌ

2

์˜ˆ์ œ ์ž…๋ ฅ 7 ๋ณต์‚ฌ

80000
2
8 9

์˜ˆ์ œ ์ถœ๋ ฅ 7 ๋ณต์‚ฌ

2228

# ํ’€์ด ๋ฐฉ๋ฒ•

์ผ๋‹จ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ฒ„ํŠผ ์ค‘์—์„œ ์ˆซ์ž N์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๊ทผ๋ฐ ์ด ์ˆซ์ž๋Š” N๋ณด๋‹ค ์ž‘์„ ์ˆ˜๋„ ํด ์ˆ˜๋„ ์žˆ๋‹ค.

 

์ด ์ˆซ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ• ์ง€ ๋จธ๋ฆฌ๊ฐ€ ์•„ํŒ ๋‹ค..

gpt์—๊ฒŒ ๋ฌผ์–ด๋ณด๋‹ˆ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ๊ณ ๋ คํ•˜๋ผ๊ณ  ํ–ˆ๊ณ .. ์ด๋Ÿฌ๋ฉด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์€๋ฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ํ†ต๊ณผ๋๋‹ค.


# ์ฝ”๋“œ

# 2025-04-25 15:36-16:20
import sys
sys.stdin = open("input.txt","r")

N = int(sys.stdin.readline().strip())
M = int(sys.stdin.readline().strip())
if M > 0:
    broken = list(map(int,sys.stdin.readline().split()))
else:
    broken = []
avail = list(set(range(10)) - set(broken))

# ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜ ์ฐพ๊ธฐ
min_clicks = abs(N-100) # +,-๋งŒ ๊ตฌํ•ด์„œ ๊ฐ€๋Š” ๊ฒฝ์šฐ
for num in range(1_000_000):
    str_num = str(num)
    if all(int(d) in avail for d in str_num):
        press = len(str_num)
        move = abs(num-N)
        min_clicks = min(min_clicks, press + move)

print(min_clicks)