[BOJ] 9095. 1,2,3 더하기

2022. 10. 28. 03:35·algorithm

문제

정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.

1+1+1+1
1+1+2
1+2+1
2+1+1
2+2
1+3
3+1
정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.

입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.

출력
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

해결 방법

  • 다이나믹 프로그래밍 문제
  • n을 1,2,3의 합으로만 나타냄
  • n이 1일 때부터 계속 합으로 나타낼 수 있는 방법을 써봄
  • 점화식 d[n] = d[n-1]+d[n-2]+d[n-3]이 나옴
  • d[1], d[2], d[3] 일 때 방법의 수는 구할 수 있음
      public static void main(String[] args) throws IOException {
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
          int n = Integer.parseInt(br.readLine());
          for(int i=0; i<n; i++) {
              int m = Integer.parseInt(br.readLine());
              int[] dp = new int[11];
              dp[1] = 1;
              dp[2] = 2;
              dp[3] = 4;
              for (int j = 4; j <= m; j++) {
                  dp[j] = dp[j - 1] + dp[j - 2] + dp[j - 3];
              }
              bw.write(dp[m] + "\n");
          }
          bw.flush();
          bw.close();
      }
저작자표시 (새창열림)

'algorithm' 카테고리의 다른 글

[BOJ] 2164. 카드2  (0) 2022.10.28
[BOJ] 10845. 큐  (0) 2022.10.28
[BOJ] 10819. 차이를 최대로  (0) 2022.10.27
[BOJ] 9935. 문자열 폭발  (0) 2022.10.21
[BOJ] 1764. 듣보잡  (0) 2022.10.21
'algorithm' 카테고리의 다른 글
  • [BOJ] 2164. 카드2
  • [BOJ] 10845. 큐
  • [BOJ] 10819. 차이를 최대로
  • [BOJ] 9935. 문자열 폭발
siio
siio
  • siio
    siio's blog
    siio
  • 전체
    오늘
    어제
    • category (47)
      • Projects (4)
      • Java (1)
      • Spring (0)
      • DevOps (0)
      • algorithm (42)
      • 회고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    외판원순회
    SWYP
    jre
    risingcamp
    jvm
    Knapsack
    Scanner
    git #github #협업프로세스
    DP
    BufferedReader
    ncp
    dfs
    same site
    http only cookie
    10971
    JDK
    Cross Domain
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
siio
[BOJ] 9095. 1,2,3 더하기
상단으로

티스토리툴바