단계별로 풀어보기 > 조합론 > 녹색거탑
https://www.acmicpc.net/problem/24723
녹색거탑 높이 정수 N이 주어질 때 정상에서 바닥까지 내려오는 경우의 수를 출력하라.

한층씩 내려올 때마다 분기가 2개로 나뉜다.
즉, 한층당 2^N의 분기가 생긴다.
결과에 2^N 값을 return 하면 된다.
import java.io.*;
public class 녹색거탑 {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int result = (int) Math.pow(2,N);
bw.write(String.valueOf(result));
bw.flush();
bw.close();
br.close();
}
}
Review
import java.io.*;
public class 녹색거탑_review {
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());
int result = (int)Math.pow(2,N);
bw.write(String.valueOf(result));
bw.flush();
bw.close();
br.close();
}
}
처음에 그림을보고 착각해서 N!x2하는 형식으로 접근했었다.
하지만, 문제를 자세히 이해해 보면 "각 층마다 분기가 생긴다."를 주의해야한다.

Review