알고리즘/코드트리 문제풀이
코드트리 [자바 java] 아름다운 수
잔디🌿
2023. 8. 6. 21:51
https://www.codetree.ai/missions/2/problems/beautiful-number/submissions
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
이 문제는 입력받은 수 길이의 아름다운 수가 얼마나 있는지 계산하는 것이다.
1은 하나씩, 2는 두개씩, 3은 3개씩, 4는 4개씩 한번에 나타나야 한다. 이 문제는 위와 같은 방식이지만, 1,2,3,4를 한 덩어리로 생각해서 배열에 넣어주었다. 이 문제에서 한 덩어리의 수를 넣었을 때 배열을 벗어나는 경우에 대한 예외처리를 해야하는 것을 주의해야 한다.
import java.io.*;
import java.util.*;
public class Main {
static int n;
static int cnt = 0;
static int[] arr;
static void func(int num){
if(num == n){
cnt++;
}
else{
for(int i = 1;i<=4;i++){
if(num+i > n){
return;
}
else{
for(int j = 0;j<i;j++){
arr[num + j] = i;
}
func(num + i);
}
}
}
}
public static void main(String[] args) throws IOException{
// 여기에 코드를 작성해주세요.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
arr = new int[n];
func(0);
System.out.println(cnt);
}
}