[๋ฐฑ์ค€] 1107 ๋ฆฌ๋ชจ์ฝ˜ (python ํŒŒ์ด์ฌ)

2022. 6. 22. 16:53ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/1107

 

1107๋ฒˆ: ๋ฆฌ๋ชจ์ปจ

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

www.acmicpc.net


 

์•„์ด๋””์–ด

1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ

  • ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  DP๋กœ ํ’€์–ด์•ผ ํ•˜๋‚˜ ์ƒ๊ฐํ•˜๋ฉด์„œ ๋„์ €ํžˆ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋ฅผ ๋ณด๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ๋ฌธ์ œ๋‹ค.

2. ๊ตฌํ˜„

  • ๋จผ์ € ํ˜„์žฌ ์ฑ„๋„(100)์—์„œ ์ตœ์†Œ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ
  • ์ดํ›„ 0๋ถ€ํ„ฐ 1000000๊นŒ์ง€ ๋ฒ„ํŠผ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ฑ„๋„์ธ์ง€ ํ™•์ธ
  • ๊ทธ ์ฑ„๋„ ์ˆซ์ž๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฒ„ํŠผ ๊ฐœ์ˆ˜ ํ™•์ธ

์ฝ”๋“œ ์„ค๋ช…

N = int(input())
M = int(input())

if M != 0:
    broken_button = [int(x) for x in input().split()]
else:
    broken_button = []

result = abs(100 - N)

์ž…๋ ฅํ• ๋•Œ ๊ณ ์žฅ ๋‚œ ๋ฒ„ํŠผ์ด ์—†์œผ๋ฉด ์ž…๋ ฅ์ด ์—†์œผ๋‹ˆ๊นŒ ์ฒ˜๋ฆฌํ•ด๋‘ .

์ฒ˜์Œ ์ฑ„๋„ 100์—์„œ +, - ์ฑ„๋„ ์ด๋™ํ•œ ๊ฒƒ์ด ๋‹ต์ผ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ result๊ฐ’ abs(100 - N)์œผ๋กœ ์„ค์ •

 

for num in range(1000001):
    n = [int(x) for x in list(str(num))]

    for i in range(len(n)):
        if n[i] in broken_button:
            break

        if i == len(n) - 1:
            count = len(n) + abs(N - num)
            result = min(result, count)
print(result)

0๋ถ€ํ„ฐ 1000001๊นŒ์ง€ for๋ฌธ ์‹คํ–‰.

N ์ตœ๋Œ€๊ฐ’์€ 500000์ด์ง€๋งŒ ์ˆซ์ž๊ฐ€ ์œ„์—์„œ ๋‚ด๋ ค์˜ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฏ€๋กœ 1000000๊นŒ์ง€ ๋ฐ˜๋ณต

์˜ˆ๋ฅผ ๋“ค์–ด N = 500000์ด๊ณ  ๊ณ ์žฅ ๋‚œ ๋ฒ„ํŠผ์ด 1 2 3 4 5 6 7 9 0 ์ผ ๋•Œ 888888์—์„œ ๋‚ด๋ ค์˜ค๋Š” ๊ฒŒ ๋” ๋น ๋ฅด๋‹ค.

 

ํ•ด๋‹น๋˜๋Š” ์ˆซ์ž๊ฐ€ ๋งŒ๋“œ๋Š”๊ฒŒ ๊ฐ€๋Šฅํ•˜๋ฉด result๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๊ณ  ์•„๋‹ˆ๋ฉด ๋‹ค์Œ ์ˆ˜๋กœ ๋„˜๊ธด๋‹ค.

๋ฒ„ํŠผ ๋ˆ„๋ฅธ ํšŸ์ˆ˜๋Š” ์ˆซ์ž๊ธธ์ด + ํ•ด๋‹น ์ˆซ์ž์™€ N์˜ ์ฐจ์ด 

 


 

์ „์ฒด ์ฝ”๋“œ

N = int(input())
M = int(input())

if M != 0:
    broken_button = [int(x) for x in input().split()]
else:
    broken_button = []

result = abs(100 - N)

for num in range(1000001):
    n = [int(x) for x in list(str(num))]

    for i in range(len(n)):
        if n[i] in broken_button:
            break

        if i == len(n) - 1:
            count = len(n) + abs(N - num)
            result = min(result, count)
print(result)

๋ธŒ๋ฃจํŠธํฌ์Šค์™€๋„ ์นœํ•ด์ ธ์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๋ฌธ์ œ

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 14500 ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (python ํŒŒ์ด์ฌ)  (0) 2022.06.23
[๋ฐฑ์ค€] 18111 ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ (python ํŒŒ์ด์ฌ)  (4) 2022.06.23
[๋ฐฑ์ค€] 16234 ์ธ๊ตฌ์ด๋™ (python ํŒŒ์ด์ฌ)  (0) 2022.06.21
[๋ฐฑ์ค€] 1389 ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ (python ํŒŒ์ด์ฌ)  (0) 2022.06.19
[๋ฐฑ์ค€] 7562 ๋‚˜์ดํŠธ์˜ ์ด๋™ (python ํŒŒ์ด์ฌ)  (0) 2022.06.18
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 14500 ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 18111 ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 16234 ์ธ๊ตฌ์ด๋™ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 1389 ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์œ„์ƒ์ •๋ ฌ
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    ๋ฐฑ์ค€
    DFS
    imos
    ํŒฐ๋ฆฐ๋“œ๋กฌ
    ์žฌ๊ท€
    ์Šคํƒ
    Python
    ๋ˆ„์ ํ•ฉ
    DP
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ํˆฌํฌ์ธํ„ฐ
    ๋ถ€๋ถ„ํ•ฉ
    ๋ƒ…์ƒ‰
    ๊ตฌํ˜„
    slicing
    Bruteforce
    BFS
    ๋ถ„ํ•  ์ •๋ณต
    ์ •์ฒ˜๊ธฐ
    ํŒŒ์ด์ฌ
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    boj
    ๋ฐ๋ธŒ์ฝ”์Šค
    SWEA
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ๊ทธ๋ฆฌ๋””
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 1107 ๋ฆฌ๋ชจ์ฝ˜ (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”