💻 문제


일단 이해하자🤔
- 0층의
i호에는 i명만큼 살기 때문에 따로 넣어주고 i층의 j호에는 i-1층 1호부터 j호까지 들어가도록 삼중 for문을 돌렸다. 입력받은 층과 호의 사람을 출력하면 완료!
👀 풀이
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(bfr.readLine());
int floor[][] = new int[15][15];
for(int i = 0; i <= 14; i++) {
for(int j = 1; j <= 14; j++) {
if(i == 0) {
floor[i][j] = j;
}
else {
for(int s = 1; s <= j; s++) {
floor[i][j] += floor[i-1][s];
}
}
}
}
for (int i = 0; i < T; i++) {
int k = Integer.parseInt(bfr.readLine());
int n = Integer.parseInt(bfr.readLine());
bfw.write(floor[k][n] + "\n");
}
bfr.close();
bfw.flush();
bfw.close();
}
}
💡 결과

아쉬웠던 점••
- 시간 제한이 적었다면 풀지 못했을 문제인 것 같다. 혹시 반복문 말고 다른 방법으로 접근할 수 있는 방법이 있을지 생각해보는 것도 좋을 것 같다.