-
[백준][java] 이친수 2193번잡동사니 2022. 10. 9. 17:37
bottom-up
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; public class Main { static ArrayList<ArrayList<Long>> list = new ArrayList<>(); public static void main(String[] args) throws NumberFormatException, IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); ArrayList<Long> list0 = new ArrayList<>(); list0.add(0l); list.add(list0); ArrayList<Long> list1 = new ArrayList<>(); list1.add(1l); list.add(list1); for(int i = 2; i<n+1; i++) { ArrayList<Long> list2 = new ArrayList<>(); for(int j = 0;j<list.get(i-1).size();j++) { String str = list.get(i-1).get(j)+""; if(str.charAt(str.length()-1)=='0') { list2.add(Long.parseLong(str+"1")); list2.add(Long.parseLong(str+"0")); }else { list2.add(Long.parseLong(str+"0")); } } list.add(list2); } System.out.println(list.get(n).size()); } }
결과 : 런타임 에러
아마 Long.parseLong쪽에서 에러가 나지 않았나 싶다…
top-down
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class 이친수2193 { static long[] d = null; public static void main(String[] args) throws NumberFormatException, IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); d = new long[n+1]; d[0] = 0l; d[1] = 1; for(int i = 2; i<d.length; i++) { d[i]=d[i-1]+d[i-2]; } System.out.println(d[n]); } }
이친수들을 구하지 않고, 개수만 구하는 방식으로 했더니 성공!
'잡동사니' 카테고리의 다른 글
[406 error] ajax로 list 받아오기 (0) 2023.01.26 [mac][m2]스프링 설치하기 (0) 2022.10.31 [백준][java] 쉬운 계단 수 10844번 (0) 2022.10.09 [poi] excel파일 다운로드 받기 (0) 2022.10.07 회원가입 유효성 검증: 한글만 추출하기 (1) 2022.10.05