[BaekJoon] 17626๋ฒˆ Four Squares

2022. 6. 3. 16:24ยท๐Ÿ’ฏ CodingTest/BaekJoon

โ–ถ ๋ฌธ์ œ : https://www.acmicpc.net/problem/17626

 

17626๋ฒˆ: Four Squares

๋ผ๊ทธ๋ž‘์ฃผ๋Š” 1770๋…„์— ๋ชจ๋“  ์ž์—ฐ์ˆ˜๋Š” ๋„ท ํ˜น์€ ๊ทธ ์ดํ•˜์˜ ์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ฆ๋ช…ํ•˜์˜€๋‹ค. ์–ด๋–ค ์ž์—ฐ์ˆ˜๋Š” ๋ณต์ˆ˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, 26์€ 52๊ณผ 12์˜ ํ•ฉ์ด๋‹ค; ๋˜ํ•œ 42 + 32 + 1

www.acmicpc.net

 

โ–ถ ์ฝ”๋“œ :

 

const input = require('fs').readFileSync('BaekJoon/testcase.txt').toString().trim().split('\n');

let n = Number(input[0]);

const dp = Array(50001);
dp[0] = 0;
dp[1] = 1;


for(let i = 1; i < n+1; i++){
    let count = 0;
    let temp = i;
    while(temp != 0){
        const num = parseInt(Math.sqrt(temp)) ** 2;
        temp -= num;
        count += 1;
    }
    dp[i] = count;

    for(let j = 1; j < parseInt(Math.sqrt(i)) + 1; j++){
        dp[i] = Math.min(dp[i], dp[j ** 2] + dp[i - (j**2)]);
    }
}

console.log(dp[n])

 

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

1. DP ์™€ ๊ด€๋ จํ•˜์—ฌ ์กฐ๊ธˆ์€ ์ƒ๊ฐ๋„ ๊ธธ๊ฒŒํ•ด์•ผํ•˜๊ณ  ๋ฒ„๊ฑฐ์›Œ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด์•˜๋‹ค.  

 

[์ฐธ์กฐ] : https://velog.io/@kyy00n/%EB%B0%B1%EC%A4%80-17626%EB%B2%88-Four-Squares

 

[๋ฐฑ์ค€] 17626๋ฒˆ: Four Squares

๋ผ๊ทธ๋ž‘์ฃผ๋Š” 1770๋…„์— ๋ชจ๋“  ์ž์—ฐ์ˆ˜๋Š” ๋„ท ํ˜น์€ ๊ทธ ์ดํ•˜์˜ ์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ฆ๋ช…ํ•˜์˜€๋‹ค.

velog.io

2. ์œ„์˜ ์‚ฌ์ดํŠธ์—์„œ Python ์„ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด Javascript ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด๋ณด๋ฉฐ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด๋ณด์•˜๋‹ค.

3. ์ดˆ๊ธฐ 1 ~ 50000๊นŒ์ง€์˜ ์ˆซ์ž๋ณ„ ์ตœ์†Œ ๋ผ๊ทธ๋ž‘์ฃผ ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด์ธ dp ๋ฅผ ์„ ์–ธํ•˜๊ณ  0๊ณผ 1์„ ์ดˆ๊ธฐํ™”ํ•˜์˜€๋‹ค.

4. ์ดํ›„ ์ž…๋ ฅ๋œ n ๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ์ˆœํšŒํ•œ๋‹ค. 

5. ๋‚ด๋ถ€์—์„œ๋Š” count๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , temp ๋ณ€์ˆ˜์— i ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. 

6. ์ดํ›„ temp ๊ฐ€ 0์ด ๋ ๋•Œ๊นŒ์ง€ while๋ฌธ์„ ๋Œ๋ฉด์„œ num์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ํ˜„์žฌ temp ๊ฐ’์˜ ์ œ๊ณฑ๊ทผ์˜ ์ œ๊ณฑ์„ ๋นผ์ค€๋‹ค. ์ด๋•Œ count๋Š” 1์„ ์ฆ๊ฐ€์‹œ์ผœ temp์—์„œ ๋บ„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ œ๊ณฑ๊ทผ์˜ ์ œ๊ณฑ์ˆ˜๋ฅผ ๋บ์„๋•Œ์˜ count๋ฅผ dp์— ์ €์žฅํ•œ๋‹ค.

7. ์ด๋ ‡๊ฒŒ ์šฐ์„ ์ ์œผ๋กœ count๊ฐ’์„ ๊ตฌํ•œ๋’ค for๋ฌธ์„ ์ด์šฉํ•ด 1 ~ (i ์˜ ์ œ๊ณฑ๊ทผ ์ •์ˆ˜๋ถ€์˜ ์ œ๊ณฑ + 1)๊นŒ์ง€ ์ˆœํšŒํ•˜๋ฉด์„œ ํ˜„์žฌ dp์— ์ €์žฅ๋œ ๊ฐ’๊ณผ ํ•ด๋‹น ์ˆ˜(i)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ œ๊ณฑ์˜ ๊ฒฝ์šฐ์— ์ €์žฅ๋œ dp ๊ฐ’์˜ ํ•ฉ์„ ๋น„๊ตํ•˜๋ฉฐ ์ตœ์†Œ๊ฐ’์„ ํƒ์ƒ‰ํ•œ ๋’ค dp[i]๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. (๋ฌผ๋ก  ๊ทธ๋Œ€๋กœ์ผ ์ˆ˜ ์žˆ๊ฒ ์ง€)

8. ์ด๋ ‡๊ฒŒ ๋ฐ˜๋ณต๋ฌธ์„ ์ˆœํšŒํ•œ ๋’ค dp[์ž…๋ ฅ ์ˆซ์ž]๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋„์• ~ 

'๐Ÿ’ฏ CodingTest > BaekJoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 9095๋ฒˆ 1, 2, 3 ๋”ํ•˜๊ธฐ  (0) 2022.06.17
[BaekJoon] 17219๋ฒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ  (0) 2022.06.03
[BaekJoon] 11724๋ฒˆ ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜  (0) 2022.06.03
[BaekJoon] 2606๋ฒˆ ๋ฐ”์ด๋Ÿฌ์Šค  (0) 2022.06.02
[BaekJoon] 2579๋ฒˆ ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ  (0) 2022.06.02
'๐Ÿ’ฏ CodingTest/BaekJoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Baekjoon] 9095๋ฒˆ 1, 2, 3 ๋”ํ•˜๊ธฐ
  • [BaekJoon] 17219๋ฒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ
  • [BaekJoon] 11724๋ฒˆ ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜
  • [BaekJoon] 2606๋ฒˆ ๋ฐ”์ด๋Ÿฌ์Šค
S.Honey
S.Honey
  • S.Honey
    Algo ์“ฐ์ž
    S.Honey
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (123)
      • ํšŒ๊ณ  (0)
        • ์ทจ์—… ํ›„ ํšŒ๊ณ  (0)
      • ๐Ÿƒ Frontend Road-Map (2)
        • ๐Ÿšฉ Summary (1)
        • ๐Ÿ“š Road-Map Contents (1)
        • ๐ŸŸง HTML (0)
        • ๐ŸŸฆ CSS (0)
        • ๐ŸŸจ Javascript (0)
        • โฌœ React (0)
        • ๐ŸŸช Redux (0)
      • Backend (0)
        • QueryDSL (0)
      • ๐Ÿ’ป Programming Language (54)
        • C# (51)
        • Flutter-Dart (3)
        • Java (0)
      • ๐Ÿ“š Computer Science (4)
        • Algorithms (4)
        • Database (0)
        • Network (0)
        • Operating System(OS) (0)
      • ๐Ÿ’ฏ CodingTest (60)
        • BaekJoon (22)
        • Programmers (34)
        • CodeTree (4)
      • โœ’๏ธ Design Pattern (1)
      • ๐Ÿฑ Etc (2)
        • Jenkins Plugin ์ œ์ž‘๊ธฐ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

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

      • ๐Ÿ“– ๊ณต๋ถ€ ์ฐธ๊ณ  ๊ต์žฌ ๋ฐ ์ž๋ฃŒ
    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

      ์“ฐ์…จ์ž–์•„
      ์ฝ”๋“œํŠธ๋ฆฌ
      c#
      JavaScript
      JS
      BAEKJOON
      ๊ตฌํ˜„
      ์‹œ๋ฎฌ๋ ˆ์ด์…˜
      ์Šคํ„ฐ๋””
      ์ž๋ฃŒ๊ตฌ์กฐ
      ๋ฐฑ์ค€
      DP
      ํŒŒ์ด์ฌ
      Java
      ์‚ผ์„ฑsw์—ญํ…Œ
      ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      sort
      Algorithm
      ๋ฌธ์ž์—ด ํŒŒ์‹ฑ
      ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      ์ด์ง„ํƒ์ƒ‰
      ์•Œ๊ณ ๋ฆฌ์ฆ˜
      programmers
      ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
      ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰
      DART
      BFS
      ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
      ์นด์นด์˜ค
      Flutter
    • ์ตœ๊ทผ ๋Œ“๊ธ€

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
    S.Honey
    [BaekJoon] 17626๋ฒˆ Four Squares
    ์ƒ๋‹จ์œผ๋กœ

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