728x90
문제
접근 방식
처음에는 이름이랑 그림만 보고 트리 문제인가 했는데 읽고서 그림을 그려보다 보니 DP 문제에 가까워 보였다.
근데 막상 DP를 사용해서 풀지도 않았고 이게 왜 티어를 골드 4까지나 준건지 모르겠는 문제인데, 규칙만 찾으면 코드 몇 줄로도 간단하게 풀 수 있다.
아래에서부터 왼중오 3개의 노드를 하나의 차로 방문하는 것이 가장 적은 차를 사용하는 경우이고, 주어진 입력내 트리의 노드 수가 long의 범위를 벗어나지 않기 때문에 DP를 사용하지 않고도 단순 연산으로도 풀 수 있다.
풀이
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int h = Integer.parseInt(br.readLine());
long road = (2L << h) - 1;
long result = road % 3 != 0 ? road / 3 + 1 : road / 3;
System.out.println(result);
}
}
'Java > Algorithms' 카테고리의 다른 글
[백준] 1976번 : 여행 가자 (0) | 2024.06.03 |
---|---|
[백준] 31924번 : 현대모비스 특별상의 주인공은? 2 (0) | 2024.05.29 |
[백준] 20208번 : 진우의 민트초코우유 (0) | 2024.05.05 |
[백준] 16928번 : 뱀과 사다리 게임 (0) | 2024.04.21 |
[백준] 11054번 : 가장 긴 바이토닉 부분 수열 (1) | 2024.04.20 |