๐Ÿ”ฅ[99ํด๋Ÿฝ ์ฝ”ํ…Œ ์Šคํ„ฐ๋””] 22์ผ์ฐจ TIL - ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ

HOONSSACยท2024๋…„ 8์›” 12์ผ
1

99Club Coding Test Study

๋ชฉ๋ก ๋ณด๊ธฐ
22/41
post-thumbnail

โณ๋ฌธ์ œ

ํšจ์ง„์ด๋Š” ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ์—ฐ์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํšจ์ง„์ด๋Š” ํ•œ๋ฒˆ์— 1์นธ, ๋˜๋Š” 2์นธ์„ ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นธ์ด ์ด 4๊ฐœ ์žˆ์„ ๋•Œ, ํšจ์ง„์ด๋Š”
(1์นธ, 1์นธ, 1์นธ, 1์นธ)
(1์นธ, 2์นธ, 1์นธ)
(1์นธ, 1์นธ, 2์นธ)
(2์นธ, 1์นธ, 1์นธ)
(2์นธ, 2์นธ)
์˜ 5๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งจ ๋ ์นธ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ์— ์‚ฌ์šฉ๋  ์นธ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, ํšจ์ง„์ด๊ฐ€ ๋์— ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋‚ด, ์—ฌ๊ธฐ์— 1234567๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด 4๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค๋ฉด, 5๋ฅผ returnํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿšจ์ œํ•œ ์‚ฌํ•ญ

  • n์€ 1์ด์ƒ, 2000์ดํ•˜์ธ ์ •์ˆ˜์ด๋‹ค.

๐Ÿ“„์ž…์ถœ๋ ฅ ์˜ˆ

nresult
45
33

๐Ÿ“„์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋‚ด์šฉ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

(2์นธ, 1์นธ)
(1์นธ, 2์นธ)
(1์นธ, 1์นธ, 1์นธ)
์ด 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ๏ธํ’€์ด

๊ทœ์น™์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ด ์นธ์ด 1์นธ์ผ ๋•Œ๋ถ€ํ„ฐ 5์นธ์ผ ๋•Œ๊นŒ์ง€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ ์ ์–ด๋ณด์•˜๋‹ค.

์—ฌ๊ธฐ์„œ ์ฐพ์€ ๊ทœ์น™์€, ์ด ์นธ์ด N์ธ ๊ฒฝ์šฐ N-1์นธ์ผ ๋•Œ ๊ฒฝ์šฐ์˜ ์ˆ˜์™€ N-2์นธ์ผ ๋•Œ ๊ฒฝ์šฐ์˜ ์ˆ˜์˜ ํ•ฉ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด 4์นธ์ผ ๋•Œ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 2์นธ์ผ ๋•Œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ + 3์นธ์ผ ๋•Œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์ด๋‹ค.
์ด ๊ทœ์น™์— Dynamic Programming์„ ์ ์šฉ์‹œ์ผœ ๊ตฌํ˜„์„ ํ•ด ๋ณด์•˜๋‹ค.

class Solution {
    public long solution(int n) {
        long[] dp = new long[n + 1];
        dp[1] = 1;
        dp[2] = 2;
        
        if (n == 1) {
            return 1;
        }
        else if (n == 2) {
            return 2;
        }
        else {
            for (int i = 3; i <= n; i++) {
                dp[i] = (dp[i - 1] + dp[i - 2]) % 1234567;
            }
        }
     
        return dp[n];
}

์ค‘๋ณต๋˜๋Š” ๊ณ„์‚ฐ์˜ ๋ฒ”์œ„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ฃผ์—ˆ๊ณ ,
์ด ์นธ์ด 1์ธ ๊ฒฝ์šฐ์— 1์„, 2์ธ ๊ฒฝ์šฐ์— 2๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด ์ฃผ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์นธ์ด 3์ธ ๊ฒฝ์šฐ๋ถ€ํ„ฐ n์นธ์ธ ๊ฒฝ์šฐ๊นŒ์ง€ ์œ„์—์„œ ์ฐพ์€ ๊ทœ์น™์„ ์ ์šฉํ•ด ์ฃผ๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ..

๋Š” ์ค„ ์•Œ์•˜๋‹ค.

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ผ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‚˜ ์‹ถ์–ด,

long[] dp = new long[2000];

๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ๋•Œ ํฌ๊ธฐ๋ฅผ n+1๋Œ€์‹ , 2000์ด๋ผ๋Š” ์ƒ์ˆ˜๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋‹ˆ

๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค!

n์œผ๋กœ 1์ด ๋“ค์–ด์˜ฌ ๋•Œ

dp[2] = 2;

์ด ๋ผ์ธ์—์„œ 2๋ฒˆ ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.
์•ž์œผ๋ก  ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •ํ•  ๋•Œ ์ฃผ์˜ํ•˜๊ธฐ..!


๐Ÿ”—๋ฌธ์ œ ๋งํฌ
๐Ÿ’ปRepository

profile
ํ›ˆ์‹น์˜ ๊ฐœ๋ฐœ์—ฌํ–‰

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2024๋…„ 8์›” 12์ผ

ํ—›๋‘˜ํ—›๋‘˜๐Ÿƒโ€โ™‚๏ธโ€โžก๏ธ๐Ÿƒโ€โ™€๏ธโ€โžก๏ธ๐Ÿƒโ€โžก๏ธ

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ