ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

 

๋ฐฑ์ค€ 1107๋ฒˆ ๋ฆฌ๋ชจ์ปจ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค

 

 

 

ํ˜„์žฌ ์ฑ„๋„์€ 100๋ฒˆ์ด๊ณ 

๋ฆฌ๋ชจ์ปจ์—๋Š” +, -, 0 ~ 9 ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ๊ณผ ๋ชฉํ‘œ์ฑ„๋„์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค

 

์œ„ ๋ฒ„ํŠผ๋“ค์„ ์ด์šฉํ•˜์—ฌ ์ตœ์†Œ ํšŸ์ˆ˜๋กœ ๋ชฉํ‘œ ์ฑ„๋„๋กœ ๊ฐ€๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋Š” brute force ์ž…๋‹ˆ๋‹ค

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------

 

 

์ €์˜ ํ’€์ด๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 

1. ์ˆซ์ž ๋ฒ„ํŠผ์œผ๋กœ ํŠน์ • ์ฑ„๋„๋กœ ๊ฐ„ ๋‹ค์Œ์— +๋˜๋Š” - ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•

2. + ๋˜๋Š” - ๋งŒ์œผ๋กœ ๋ชฉํ‘œ ์ฑ„๋„๊นŒ์ง€ ๊ฐ€๋Š” ๋ฐฉ๋ฒ•

 

 

์ด๋ ‡๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์ด ๊ฐ’๋“ค์ค‘์—์„œ ์ตœ์†Œ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค

 

 

 

์ฒซ์งธ ๋ฐฉ๋ฒ•์€

 

๋ชฉํ‘œ ์ฑ„๋„์—์„œ +1 ๋˜๋Š” -1 ํ•˜์—ฌ ํ•ด๋‹น ์ฑ„๋„์˜ ์ˆซ์ž๋“ค์ด ๋ˆ„๋ฅผ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ฑ„๋„ ์ˆซ์ž๋“ค์ด ๋ชจ๋‘ ๋ˆ„๋ฅผ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ์ผ ๊ฒฝ์šฐ

+1 ๋˜๋Š” -1 ํ•œ ํšŸ์ˆ˜์™€ ํ•ด๋‹น ์ฑ„๋„์˜ ์ˆซ์ž ์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ๋‘ ๊ฐ€์ง€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. +์ผ ๊ฒฝ์šฐ, - ์ผ ๊ฒฝ์šฐ

 

 

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€

 

๋ชฉํ‘œ ์ฑ„๋„๊ณผ ํ˜„์žฌ ์ฑ„๋„์˜ ์ฐจ์ด๊ฐ’ abs(targetNum - 100) ์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ด๋ ‡๊ฒŒ ์ด 3๊ฐ€์ง€(plus count, minus count, abs๊ฐ’)์˜ ๊ฐ’ ๊ฐ€์žฅ ์ ์€ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์•„๋ž˜๋Š” python ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค

 

 

import sys
import math

# ํ•ด๋‹น ์ฑ„๋„์˜ ์ˆซ์ž๋“ค์ด ๋ˆ„๋ฅผ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜
def validation(num,ableBtns):
    if num < 0: return False
    numArray = list(map(int,str(num)))
    isContains: bool = True
    for i in numArray:
        if i not in ableBtns:
            isContains = False
    return isContains

targetNum = int(input())
inputCnt = int(input())

if inputCnt > 0:
    disableBtns = list(map(int,sys.stdin.readline().rstrip().split()))
else:
    disableBtns = []

plusTargetNum: int = targetNum
minusTargetNum: int = targetNum

minusCnt = math.inf
plusCnt = math.inf 

allBtns = [0,1,2,3,4,5,6,7,8,9]
ableBtns = [x for x in allBtns if x not in disableBtns]

answer = abs(targetNum - 100)

while 1:
    if len(ableBtns) == 0: break
        
    if validation(minusTargetNum, ableBtns):
        minusCnt = list(map(int,str(minusTargetNum)))
        minusCnt = (targetNum - minusTargetNum) + len(minusCnt)
        break
    elif validation(plusTargetNum, ableBtns):
        plusCnt = list(map(int,str(plusTargetNum)))
        plusCnt = (plusTargetNum - targetNum) + len(plusCnt)
        break

    minusTargetNum -= 1
    plusTargetNum += 1

print(min(minusCnt,plusCnt,answer))

 

 

 

์ž˜ ๋™์ž‘ํ•˜๋Š” ๋ชจ์Šต

 

 

 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

 

 

 

์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐฑ์ค€์—์„œ ์ˆ˜์ง‘ํ•œ ๋ฐ˜๋ก€ ๋ชจ์Œ์ง‘์ž…๋‹ˆ๋‹ค.

 

 

๋”๋ณด๊ธฐ

10 

1 2 3 4 5 6 7 8 9
๋‹ต:11

101
0
๋‹ต:1

99
10
0 1 2 3 4 5 6 7 8 9
๋‹ต:1

0
0
๋‹ต:1

500000
6
0 1 2 3 4 5
๋‹ต:166672

0
2
0 1
๋‹ต:3

1555
8
0 1 3 4 5 6 7 9
๋‹ต:670

944
7
2 3 4 5 6 7 9
๋‹ต:59

6
9
0 2 3 4 5 6 7 8 9
๋‹ต:6

500000
10
0 1 2 3 4 5 6 7 8 9
๋‹ต:499900



101
10
0 1 2 3 4 5 6 7 8 9
๋‹ต:1

1
9
1 2 3 4 5 6 7 8 9
๋‹ต:2

99999
1
9
๋‹ต:7

10
1
0
๋‹ต:2

0
3
0 1 2
๋‹ต:4

0
9
0 1 2 3 4 5 6 7 8
๋‹ต:10

0
10
0 1 2 3 4 5 6 7 8 9
๋‹ต:100

1
9
1 2 3 4 5 6 7 8 9
๋‹ต:2

1020
0
๋‹ต:4

10
2
0 1
๋‹ต:2

999
1
9
๋‹ต:5

9990
8
1 2 3 4 5 6 7 8
๋‹ต:4

123
2
2 3
๋‹ต:7

199

9
๋‹ต:4

9
5
9 8 7 6 5
๋‹ต:3

19
1
1
๋‹ต:3

//gkfkagkfka12๋‹˜์ด ์ถ”๊ฐ€ํ•ด์ฃผ์‹  TC
5959
4
1 2 3 4 
4
-----------------------------------------------
56666
0

5
-----------------------------------------------
9999
8
0 1 2 3 4 5 6 7 
4
-----------------------------------------------
10
1

2
-----------------------------------------------
190000
3
1 2 9 
101117
-----------------------------------------------
123
3
1 2 5 
23
-----------------------------------------------
1
9
0 1 2 3 4 5 6 7 8 
9
-----------------------------------------------
100
10
0 1 2 3 4 5 6 7 8 9 
0
-----------------------------------------------
99933
2
3 9 
73
-----------------------------------------------
1023
5
1 2 3 4 0 
27
-----------------------------------------------
91010
2
1 0 
1016
-----------------------------------------------
383399
6
1 2 3 4 5 7 
216607
-----------------------------------------------
6711
2
1 2 
6
-----------------------------------------------
330
4
0 1 2 3 
117
-----------------------------------------------
71923
5
4 5 6 7 9 
8082
-----------------------------------------------
123123
3
1 2 3 
23129
-----------------------------------------------
499999
2
4 8 
7
-----------------------------------------------
1111
9
1 2 3 4 5 6 7 8 9 
1011
-----------------------------------------------
1111
9
0 1 2 3 4 5 6 7 8 
115
-----------------------------------------------
34311
8
0 1 2 3 4 5 6 7 
24316
-----------------------------------------------

49445
7
1 2 3 4 5 6 7 
30560
-----------------------------------------------
933
2
1 2 
3
-----------------------------------------------
1617
3
1 2 3 
621
-----------------------------------------------
856
2
5 6 
10
-----------------------------------------------
1023
8
1 2 3 4 5 6 7 8 
27
-----------------------------------------------
10900
2
1 0 
905
-----------------------------------------------
394344
3
1 2 3 
5662
-----------------------------------------------
99
1

1
-----------------------------------------------
101
9
0 1 2 3 4 5 6 7 8 
1
-----------------------------------------------
2420
6
1 2 3 4 5 6 
1424
-----------------------------------------------
991
1

4
-----------------------------------------------
30002
3
1 3 4 
8
-----------------------------------------------
1698
2
6 9 
6
-----------------------------------------------
499998
3
4 8 9 
8
-----------------------------------------------
1022
5
1 2 3 4 5 
26
-----------------------------------------------

5
10
0 1 2 3 4 5 6 7 8 9
ans95

217
7
0 1 2 4 5 7 8

ans117

---

103
5
2 3 5 7 8

ans3

0
9
1 2 3 4 5 6 7 8 9
ans 1

0
9
1 2 3 4 5 6 7 8 0
ans 10

9
9
1 2 3 4 5 6 7 8 0
ans 1

140200
3
4 5 6
ans 207

1555
3
0 1 9
ans 670

99999
9
0 2 3 4 5 6 7 8 9
ans 11118

50000
9
0 1 2 3 4 5 6 7 8
ans 40005

139133
7
9 6 8 2 1 5 7
ans 94694

14
2
1 5
ans 6

889
9
0 2 3 4 5 6 7 8 9
ans 226

6
7
3 4 5 6 7 8 9
ans 5

88
2
8 9
ans 12

7
7
3 4 5 6 7 8 9
ans 5

0
0
ans 1

1
9
0 1 2 3 4 5 6 7 8
ans 9

1705
2
6 7

์ •๋‹ต : 99

1717
1
7

์ •๋‹ต : 22

2
8
1 2 3 4 5 6 7 8

์ •๋‹ต: 3

2
7
1 2 3 4 6 8 9

์ •๋‹ต: 3

1
8
1 2 3 4 5 6 7 8

์ •๋‹ต: 2

1
7
1 2 4 5 7 8 9

์ •๋‹ต: 2

1555
8
0 1 3 4 5 6 7 9
670
    
101
3
4 5 6
1
    
162
9
0 1 3 4 5 6 7 8 9
62
    
10
9
1 2 3 4 5 6 7 8 9
11
    
1
10
0 1 2 3 4 5 6 7 8 9  
99
    
1
1
1
2
    
0
9
1 2 3 4 5 6 7 8 9
1
    
101
0
1
    
100000
9
0 1 2 3 4 5 6 7 8
6
    
1
10
0 1 2 3 4 5 6 7 8 9
99
    
1111
9
1 2 3 4 5 6 7 8 9 
1011
    
2229
6
4 5 6 7 8 9
5
    
10
1
0
2
    
0
10
0 1 2 3 4 5 6 7 8 9
100
    
9
8
0 3 4 5 6 7 8 9
4
    
0
3
0 1 2
4

99999

9

0 2 3 4 5 6 7 8 9

๋‹ต : 11118

50000

9

0 1 2 3 4 5 6 7 8

๋‹ต : 40005

9

9

1 2 3 4 5 6 7 8 9 

๋‹ต : 10

 

 

๋Œ“๊ธ€