(Java) ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv 3 ์‚ฐ ๋ชจ์–‘ ํƒ€์ผ๋ง

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

  • DP ๋ฌธ์ œ์ด๋‹ค.
  • ์‚ผ๊ฐํ˜•์˜ ํ˜•ํƒœ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์žˆ๊ธฐ์— ์ผ€์ด์Šค๋ฅผ ์‚ผ๊ฐํ˜•์ด ํ•œ์ค„๋กœ ์—ฐ์†๋ ๋•Œ์™€ ์‚ผ๊ฐํ˜•์ด ์œ„์—๋„ ํ•œ์ค„ ๋” ์žˆ์„ ๋•Œ๋กœ ๋‚˜๋ˆ  ์ž‘์€ ๋ฌธ์ œ๋ฅผ ์ฐพ์•˜๋‹ค.
  • ์•„์ด๋””์–ด ๊ด€๋ จ ํ•„๊ธฐ
  • 1๋ฒˆ :์‚ผ๊ฐํ˜•์ด ํ•œ์ค„๋กœ๋งŒ ์ด์–ด์งˆ๋•Œ

  • 2๋ฒˆ : ์‚ผ๊ฐํ˜•์ด ์œ—์ค„์—๋„ ์žˆ์„๋•Œ

  • 3๋ฒˆ : ๊ฒฐํ•ฉํ–ˆ์„๋•Œ

[ ์•ˆ๋‚ด ]

  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2024 KAKAO WINTER INTERNSHIP] ๋‚ด์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
  • ์•„๋ž˜๋Š” ์ œ์ถœํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Queue;
class Solution {
    public int solution(int n, int[] tops) {
        int zero=1,one=1; //0์˜ ๊ฐœ์ˆ˜, 1์˜ ๊ฐœ์ˆ˜
        for (int i=0;i<n-1;i++){
            if (tops[i]==0){
                int z = one; one=zero;zero+=z;
            }
            else{
                int o = one; one=zero;zero=2*zero+o;
            }
            int t = one; one=zero;zero+=t; //์—ฐ๊ฒฐ
            one%=10007;zero%=10007;
        }
        if (tops[n-1]==0){
            int z = one; one=zero;zero+=z;
        }
        else{
            int o = one; one=zero;zero=2*zero+o;
        }
        one%=10007;zero%=10007;
        return (one+zero)%10007;
    }
}
cs

 

[ ๋ฐ˜์„ฑ ]

- ์ง€๊ธˆ... ๋‚˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด์— ๋Œ€ํ•œ ๋‹จ์ ์€ ๋ฌธ์ œ ์•„์ด๋””์–ด์— ๋Œ€ํ•œ ์ ‘๊ทผ๋„ ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ด๋‹ค... 30๋ถ„ ๋งž์ถฐ๋‘๊ณ  ํ’€๊ณ  ์•ˆ๋˜๋ฉด ํ’€์ด๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถ€ํ•ด์•ผํ•˜๋Š”๋ฐ ํ•œ ์‹œ๊ฐ„๋™์•ˆ ์ด ๋ฌธ์ œ๋งŒ ์žก๊ณ  ์žˆ์—ˆ๋‹ค.. ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” 30๋ถ„ ๋นก์„ธ๊ฒŒ ์ง‘์ค‘ํ•˜๊ณ  ์ • ์•ˆ๋˜๋ฉด ๋‹ต์ง€๋ฅผ ๋ฐ”๋กœ ์ฐพ์•„๋ณด์ž. ํ•  ์ผ์ด ๋งŽ๋‹ค..

- DP์— ์ ์  ์ต์ˆ™ํ•ด์ง€๊ณ  ์žˆ๋Š”๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ ์†์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์ผ€์ด์Šค ๋งŒ๋“ค๋ฉด์„œ ๊ทœ์น™์„ ์ฐพ๊ณ  ์žˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ ‘๊ทผ๋ฐฉ๋ฒ•์€ ์–ธ์  ๊ฐ€ ํ•œ๊ณ„์— ๋‹ค๋‹ค๋ฅผ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์ผ€์ด์Šค๋กœ ํ•˜๋‚˜์”ฉ ์„ธ์ง€ ๋ง๊ณ  ๋จธ๋ฆฌ๋กœ ์ƒ๊ฐํ•˜๋ฉด์„œ ์ ‘๊ทผํ•ด๋ณด์ž.