glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์™„์ „ํƒ์ƒ‰
  • brute-force
  • c++
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์ด๋ถ„ํƒ์ƒ‰
  • ps
  • boostcampaitech
  • Baekjoon
  • Algorithm
  • Java
  • DP
  • ๋™์ ๊ณ„ํš๋ฒ•
  • BOJ
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • Stack
  • binary search
  • Python
  • bfs
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • mst

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 11051 ์ดํ•ญ ๊ณ„์ˆ˜ 2 / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 11051 ์ดํ•ญ ๊ณ„์ˆ˜ 2 / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)

2020. 3. 11. 19:16

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.


 

 

๐Ÿ’ฃ ๋ฌธ์ œ ์ดํ•ด

 

 

์ž์—ฐ์ˆ˜ N๊ณผ ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ดํ•ญ ๊ณ„์ˆ˜ (N K)๋ฅผ 10,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

 

 

 

๐Ÿ’ญ ํ’€์ด ๊ณผ์ •

 

 

nCr = n-1Cr + n-1Cr-1  ์‹ ์ด ์„ฑ๋ฆฝํ•˜๊ฒŒ ๋œ๋‹ค.

์‚ฌํƒ• 4๊ฐœ ์ค‘์— 2๊ฐœ๋ฅผ ์„ ํƒํ•  ๋•Œ (4C2) , ์–ด๋–ค ํ•œ ์‚ฌํƒ•์„ ์ œ์™ธํ•œ 3๊ฐœ ์ค‘์— 2๊ฐœ๋ฅผ ๋ฝ‘๋Š” ๊ฒฝ์šฐ (3C2) ์™€ ๊ทธ ํ•œ ์‚ฌํƒ•์„ ๋ฌด์กฐ๊ฑด ๋ฝ‘๊ณ  ๋‚จ์€ 3๊ฐœ ์ค‘์— 1๊ฐœ๋ฅผ ๋” ๋ฝ‘๋Š” ๊ฒฝ์šฐ (3C1) ๋ฅผ ํ•ฉํ•œ ๊ฒƒ๊ณผ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

์ด๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•์ด๋‹ค.

 

 

์ ํ™”์‹์€  dp[i][j] = dp[i-1][j] + dp[i-1][j-1]  ์ด๋‹ค.

 

 

 

์ž‘์„ฑ ์–ธ์–ด: C++

 

#include <cstdio>

int dp[1001][1001] = {1, };
const int REMAIN = 10007;

int pascal(int mVal, int kVal){
    for (int i = 1; i <= mVal; ++i) {
        dp[i][0] = dp[i][i] = 1;
        for (int j = 1; j < i; ++j) {
        	// (a+b)%mod = (a%mod + b%mod)%mod ์„ฑ์งˆ์„ ์ด์šฉํ•œ ๊ณ„์‚ฐ
            dp[i][j] = (dp[i-1][j] % REMAIN + dp[i-1][j-1] % REMAIN) % REMAIN;
        }
    }
    return dp[mVal][kVal];
}

int main(){
    int M, K;
    scanf("%d %d", &M, &K);
    printf("%d\n", pascal(M, K));
    return 0;
}

 

 

 

 

๐Ÿ† ๋ฐฐ์šด ์ 

 

 

DP๋กœ ํ‘ธ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๊ฐ™์€ ๋А๋‚Œ์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค.

 

์ด ์ด์ „์— ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ์ง  ์ฝ”๋“œ(๋ฉ”๋ชจ์ด์ œ์ด์…˜ ์—†์ด)๋„ ์žˆ์—ˆ๋Š”๋ฐ O(2N) ๋‹ต๊ฒŒ ์ž…๋ ฅ ๊ฐ’์ด ์กฐ๊ธˆ๋งŒ ์ปค์ง€๋ฉด ์—„์ฒญ๋‚œ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค.

 

DP ๋ฐฐ์—ด์„ ์ฑ„์›Œ์„œ ํ’€๋‹ค๋ณด๋‹ˆ O(N2) ์ด๋ฉด ํ’€๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

 

( + ๋ช‡ ๋ฒˆ ํฌ์ŠคํŒ…ํ•˜๋ฉด์„œ ๋А๊ปด์ง€๋Š” ๊ฒƒ์ด, ํ‘ผ ๊ฒƒ์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ํ•™์Šต๋œ ๊ฒƒ์„ ๋˜ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•˜๊ณ  ๋ชจ๋ฅด๋Š” ๊ฒƒ์€ ๋” ์ฐพ์•„๋ณด๋ฉด์„œ ์ข€ ๋” ๊ฐ€๊น๊ฒŒ ๋‚ด ๊ฒƒ์ด ๋œ๋‹ค๋Š” ๋А๋‚Œ์ด ๋“ ๋‹ค. )

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

'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] ๋ฐฑ์ค€ 9251 LCS / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2020.03.14
[BOJ] ๋ฐฑ์ค€ 12865 ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2020.03.12
[BOJ] ๋ฐฑ์ค€ 11057 ์˜ค๋ฅด๋ง‰ ์ˆ˜ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2020.03.09
์™œ ์ •๋‹ต์„ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ• ๊นŒ? - ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ  (0) 2020.03.06
[BOJ] ๋ฐฑ์ค€ 10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2020.03.06
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [BOJ] ๋ฐฑ์ค€ 9251 LCS / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
    • [BOJ] ๋ฐฑ์ค€ 12865 ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
    • [BOJ] ๋ฐฑ์ค€ 11057 ์˜ค๋ฅด๋ง‰ ์ˆ˜ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
    • ์™œ ์ •๋‹ต์„ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ• ๊นŒ? - ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ
    glowing713
    glowing713

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