부녀회장이 될테야 성공분류
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 128 MB | 27918 | 15730 | 13788 | 57.520% |
문제
평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.
이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.
아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.
입력
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 <= k <= 14, 1 <= n <= 14)
출력
각각의 Test case에 대해서 해당 집에 거주민 수를 출력하라.
예제 입력 1 복사
2 1 3 2 3
예제 출력 1 복사
6 10
출처
문제를 처음 읽고,
이게 도대체 무슨소리야.. 했었던 2달전의 나
문제를 이해를 못하니 엄청 뻘짓으로 문제를 풀다가 포기했었는데
오늘 천천히 다시 읽어보니
“a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다”
라는 이야기를 떠올리면서 표를 그려봤다.
4층 | 1 | 6 (1+5) |
21 (1+5+15) |
56 (1+5+15+35) |
126 (1+5+15+35+70) |
3층 | 1 | 5 (1+4) |
15 (1+4+10) |
35 (1+4+10+20) |
70 (1+4+10+20+35) |
2층 | 1 | 4 (1+3) |
10 (1+3+6) |
20 (1+3+6+10) |
35 (1+3+6+10+15) |
1층 | 1 | 3 (1+2) |
6 (1+2+3) |
10 (1+2+3+4) |
15 (1+2+3+4+5) |
0층 | 1 | 2 | 3 | 4 | 5 |
이렇게 그리고 보니깐 좀 이해가 갔다.
일단 나는 입력이 14층까지라서
그냥 배열을 선언하는 얍삽한 방법을 사용..
이렇게 하니, 한번 2개 이상되는 입력을 받을 땐 2번째부터 정상값이 나오질 않아서
다시 또 for문 안에서 lst[]를 초기화해주는 번거로운 짓을 할 수 밖에 없었다 ㅠㅠ
이것도 정답으로 인정해주는 착한 채점기... ^^
그래도 아예 진행 못하던 2달전보다는 나은상황이긴한데.. ;;
그래서 다른 포스팅을 찾아보니
2차 배열을 이용해서 처리하는 문제였던 것 같다.
(1) 2차 배열을 만든다 int[15][14] (층/호)
(2) for문 세개로 값들을 다 넣어둔다.
(3) 입력 받아 그 값을 (층/호)로 만들어진 2차원 배열에서 가지고 온다.
2차 배열 다시 공부해서
새로이 도전해봐야겠다.
'코딩 공부' 카테고리의 다른 글
[백준] 4673번 - 셀프 넘버 (Java) (0) | 2021.06.14 |
---|---|
[프로그래머스] 완주하지 못한 선수 (0) | 2021.02.13 |
[백준] 10250번 - ACM 호텔 (Java) (0) | 2020.12.22 |
[백준] 2442번 - 별 찍기 - 5 (Python) (0) | 2020.12.18 |
[백준] 10809번 - 알파벳 찾기 (Java) (0) | 2020.12.11 |