[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] N์œผ๋กœ ํ‘œํ˜„/Python - Lv.3

2024. 11. 26. 18:14ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/42895

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 11 MB, ์‹œ๊ฐ„: 19.30 ms

 
 

๋ฌธ์ œ ์„ค๋ช…

์•„๋ž˜์™€ ๊ฐ™์ด 5์™€ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ์œผ๋กœ 12๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

12 = 5 + 5 + (5 / 5) + (5 / 5)
12 = 55 / 5 + 5 / 5
12 = (55 + 5) / 5

5๋ฅผ ์‚ฌ์šฉํ•œ ํšŸ์ˆ˜๋Š” ๊ฐ๊ฐ 6,5,4 ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒฝ์šฐ๋Š” 4์ž…๋‹ˆ๋‹ค.
์ด์ฒ˜๋Ÿผ ์ˆซ์ž N๊ณผ number๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, N๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ N ์‚ฌ์šฉํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ
  • N์€ 1 ์ด์ƒ 9 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • number๋Š” 1 ์ด์ƒ 32,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ˆ˜์‹์—๋Š” ๊ด„ํ˜ธ์™€ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์—์„œ ๋‚˜๋จธ์ง€๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์†Ÿ๊ฐ’์ด 8๋ณด๋‹ค ํฌ๋ฉด -1์„ return ํ•ฉ๋‹ˆ๋‹ค.
์ž…์ถœ๋ ฅ ์˜ˆ
N number return
5 12 4
2 11 3

โœ๐Ÿปํ’€์ด

N๊ณผ number๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋ฌด์กฐ๊ฑด ์ตœ์†Ÿ๊ฐ’์„ 1์ด ๋  ์ˆ˜ ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

N์„ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” 55, 5/5, 5x5, 5+5, 5-5๊ฐ€ ์žˆ๋‹ค. ์ด๊ฑธ ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด N๊ณผ ์—ฐ์‚ฐ์ž ์กฐํ•ฉ์„ ์ด์šฉํ•˜์—ฌ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋Ÿผ N์„ ์„ธ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” N์„ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์—ฐ์‚ฐ์ž, ๊ทธ๋ฆฌ๊ณ  N์„ ํ•œ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์กฐํ•ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, N์„ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋กœ 5+5, ์—ฐ์‚ฐ์ž๋Š” -, 5๋ผ๊ณ  ํ•˜๋ฉด ์ด ์กฐํ•ฉ์€ 5 + 5 - 5๊ฐ€ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋ฐ˜๋Œ€๋กœ 5 - 5 + 5 ์กฐํ•ฉ๋„ ๋œ๋‹ค. 55 + 5์™€ 5 + 55์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฐ’์ด ๊ฐ™๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ set์„ ์ด์šฉํ•˜์—ฌ ์ค‘๋ณต๋œ ๊ฐ’์€ ์กด์žฌํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ œ์•ฝ์‚ฌํ•ญ์—์„œ ์ตœ์†Ÿ๊ฐ’์ด 8๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋Š” -1์„ ๋ฐ˜ํ™˜ํ•˜๋ผ๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ for๋ฌธ์„ ๋Œ๋ฉฐ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

def solution(N, number):
    if N == number:
        return 1
    
    dp = [set() for _ in range(9)]
    dp[1].add(N)
    x = N
    for i in range(2, 9):
        dp.append(set())
        x = 10 * x + N
        dp[i].add(x)
        for j in range(i):
            for op1 in dp[j]:
                for op2 in dp[i-j]:
                    dp[i].add(op1 + op2)
                    dp[i].add(op1 - op2)
                    dp[i].add(op1 * op2)
                    if op2 != 0:
                        dp[i].add(op1 // op2)
        
        if number in dp[i]:
            return i
        
    return -1

๐Ÿ“ํ›„๊ธฐ

DP๋Š” ๋งž๋Š”๋ฐ ๊ฐ„๋‹จํ•œ DP ๋ฌธ์ œ๋งŒ ๋ณด๋‹ค๋ณด๋‹ˆ ์ด๋Ÿฐ DP๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์–ด๋–ป๊ฒŒ ํ’€์–ด์•ผํ• ์ง€ ๊ฐ์ด ์ž˜ ์žกํžˆ์ง€ ์•Š๋Š”๋‹ค. ์กฐํ•ฉํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๊ทธ ์ด์ƒ์œผ๋กœ๋Š” ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๋‚ด ์ž์‹ ์ด ๋„ˆ๋ฌด ๋‹ต๋‹ต..

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Coding Test > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1931.ํšŒ์˜์‹ค ๋ฐฐ์ •/Python - Silver1  (1) 2024.11.28
[๋ฐฑ์ค€] 1541.์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ/Python - Silver2  (0) 2024.11.27
[SWEA] 1215. ํšŒ๋ฌธ1/Python - D3  (0) 2024.11.16
[SWEA] 1289.์›์žฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ณต๊ตฌํ•˜๊ธฐ/Python - D3  (2) 2024.11.14
[SWEA] 1225.์•”ํ˜ธ์ƒ์„ฑ๊ธฐ/Python - D3  (1) 2024.11.13
'Coding Test/Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1931.ํšŒ์˜์‹ค ๋ฐฐ์ •/Python - Silver1
  • [๋ฐฑ์ค€] 1541.์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ/Python - Silver2
  • [SWEA] 1215. ํšŒ๋ฌธ1/Python - D3
  • [SWEA] 1289.์›์žฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ณต๊ตฌํ•˜๊ธฐ/Python - D3
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (171) N
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (85) N
        • Algorithms (77) N
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์˜ค๋ธ”์™„
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    Kubernetes
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    ๋ฐฑ์ค€
    Shell Script
    ๋„์ปค
    Linux
    docker
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    bfs
    dfs
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์ž๋ฐ”
    Java
    programmers
    network
    K8s
    Baekjoon
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    ๋„คํŠธ์›Œํฌ
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๋ฆฌ๋ˆ…์Šค
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    Shell
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] N์œผ๋กœ ํ‘œํ˜„/Python - Lv.3
์ƒ๋‹จ์œผ๋กœ

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