250x250
두번째하늘
두하
두번째하늘
전체 방문자
오늘
어제
  • 분류 전체보기
    • 한달 기록
    • 매일 기록
    • 정보, 공유
    • 맛집
    • 후기
      • 대회
      • 기타
    • Flutter
    • Visual Studio Code
    • 프로그래밍 언어
    • 인공지능
    • PS
      • BOJ
      • CP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Webex 화면 공유 오류
  • Mac Webex 화면 공유
  • Webex 화면 공유 안됨
  • debug console창 열기
  • leading
  • debug console open
  • Webex 화면 공유 mac
  • Webex 화면 공유
  • 무야홍
  • onDetailPressed
  • EdgeInsets
  • box decoration
  • onPressed
  • Visual code debug console open
  • AppBar
  • actions
  • UserAccountsDrawerHeader
  • Flutter
  • Visual code debug console
  • Drawer
  • 첫 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
두번째하늘

두하

[11051 C++, python] 이항 계수 2
PS/BOJ

[11051 C++, python] 이항 계수 2

2022. 2. 6. 02:59
728x90

문제 구분 - Dynamic Programing

 

11051번: 이항 계수 2

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

동기들과 랜덤실버디펜스할때 처음 봤던 문제다.

사실 처음 봤다고 말하기도 좀 애매한게 여러 번 풀었던 유형이었다.

(그런데도 못맞..)

이 문제는 파이썬으로 팩토리얼 돌려버리면 풀리긴 하는데 문제 출제 의도는 dp였다고 생각한다. 

//
//  main.cpp
//  11051
//
//  Created by jisu on 2022/02/06.
//

#include <iostream>

using namespace std;

int bino[1001][1001] = {0,};

int main(void) {
    int n, k;
    cin >> n >> k;
    //nCr = n-1Cr-1 + n-1Cr
    bino[1][0] = 1;
    bino[1][1] = 1;
    for (int i=2; i<=n; i++){
        for (int j=0; j<=k; j++){
            if (j==0 || j==i){
                bino[i][j] = 1;
            }
            else{
                bino[i][j]=bino[i-1][j-1]%10007+bino[i-1][j]%10007;
            }
        }
    }
    cout << bino[n][k]%10007 << "\n";
    return 0;
}

조합 관련해서 고등학교때 가장 중요했던 성질 하나가 바로 

nCr = n-1Cr-1 + n-1Cr

이었는데 이 성질을 dp에다가 적용할 수 있었다. 

파스칼의 삼각형도 잊어먹어서 리마인드겸 사진도 올려본다.

from math import factorial
n, k = map(int, input().split())
result = factorial(n)//(factorial(k) * factorial(n - k))
print(result % 10007)

파이썬으로 풀면 풀리긴 하더라.. 

728x90

'PS > BOJ' 카테고리의 다른 글

[22984 C++,python] 반짝반짝 2 / cout << fixed; cout.precision(10);  (0) 2022.02.17
[1149 C++] RGB 거리  (0) 2022.02.06
    'PS/BOJ' 카테고리의 다른 글
    • [22984 C++,python] 반짝반짝 2 / cout << fixed; cout.precision(10);
    • [1149 C++] RGB 거리
    두번째하늘
    두번째하늘
    metaverse. 일상이야기 쓰고 공부 좀 하려고 만든 두번째 하늘.

    티스토리툴바