누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코틀린 인 액션
  • 백준 자바 누적합
  • 백준 자바 2292번
  • 백준 자바 2559번
  • 자바 Priority Queue
  • 백준 자바 정렬
  • 코틀린 runBlocking
  • 자료구조
  • 백준 자바 수열
  • 알고리즘 조합
  • 안드로이드 디자인
  • 코틀린
  • 클라우드
  • 클라우드 컴퓨팅
  • 백준 자바 벌집
  • 안드로이드
  • Room version 올리기
  • 백준 자바
  • Room Migration
  • 백준 자바 다이나믹 프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

백준/JAVA

[백준/JAVA] 2775번 부녀회장이 될테야

2023. 1. 19. 17:46
  • 층과 거주자 수의 규칙을 찾는 문제

https://www.acmicpc.net/problem/2775

1. 문제

평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.

이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.

아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.

2. 문제 접근

1) Test Case의 수 T를 입력받는다.
2) T만큼 반복하며 층 수 k와 호 수 n을 입력받는다.
3) 해당하는 k층 n호의 거주민 수를 출력한다.

  • 재귀적인 방법을 사용하여 거주민 수 구하기
  • k층 n호의 거주민 수를 구하는 함수에서 k-1층의 n호까지의 거주민의 수를 구하는 함수를 다시 호출 해준다.

3. 코드

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        int k, n;
        StringBuilder sb = new StringBuilder();
        for(int i =0;i<T;i++) {
            k = Integer.parseInt(br.readLine());
            n = Integer.parseInt(br.readLine());
            sb.append(fun(k,n)).append("\n");
        }
        System.out.print(sb);
    }

    private static int fun(int k, int n ) {
        int people = 0;
        if(k==0) {
            return n;
        }
        else {
            for(int i=1;i<=n;i++) {
                people += fun(k-1,i);
            }
            return people;
        }
    }
}

'백준 > JAVA' 카테고리의 다른 글

[백준/JAVA] 11653번 소인수분해  (0) 2023.01.20
[백준/JAVA] 1978번 소수 찾기  (0) 2023.01.19
[백준/JAVA] 2839번 설탕 배달  (0) 2023.01.19
[백준/JAVA] 10757번 큰 수 A+B  (0) 2023.01.19
[백준/JAVA] 1316번 그룹 단어 체커  (2) 2023.01.19
    '백준/JAVA' 카테고리의 다른 글
    • [백준/JAVA] 11653번 소인수분해
    • [백준/JAVA] 1978번 소수 찾기
    • [백준/JAVA] 2839번 설탕 배달
    • [백준/JAVA] 10757번 큰 수 A+B
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바