Coding Test/백준

·Coding Test/백준
▶ BufferedReader, 동적 계획법 DP를 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 이번 문제는 동적 계획법의 첫번째 문제입니다. 피보나치 수 알고리즘으로 풀이하면 시간 초과가 발생합니다. 먼저 dp 배열을 long타입 전역변수로 초기화합니다.  main문에서 dp를  입력된 N+1만큼의 크기를 가지도록 초기화를 해줍니다. N+1로 배열을 만드는 이유는 동적 계획법(DP)을 사용하여 피보나치 수열을 계산할 때, 0번째부터 N번째까지의 피보나치 수를 저장할 공간을 확보하기 위해서입니다. 즉, 인덱스를 0부터 N까지 사용하기 위해 배열의 크기를 N+1로 설정하는 것입니다. 그리고 속도를 빠르게 하기 위해서 메모이제이션을 할 수 있도록 상향식 dp_fibo 함수를..
·Coding Test/백준
▶ BufferedReader, StringTokenizer을 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 문제 자체는 어렵지 않지만 로직을 구성하는 과정이 쉽지 않았습니다. 입력이 주어질 때 해당 날짜에 대한 요일을 구하는 문제입니다. 먼저 빠른 입력을 위해 BufferedReader 클래스를 사용하여 입력을 받아주고, 입력된 날짜를 공백을 기준으로 분리할 수 있도록 StringTokenizer 클래스를 사용하여 분리를 해주었습니다. 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. 문제에서 나왔듯이 위 조건에 따라서 날짜와 요일을 배열로 초기화를 해줍니다. 24번째 줄에서 입력된 "월"..
·Coding Test/백준
▶ BufferedReader, StringTokenizer을 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 문제 자체는 간단한데 풀이를 하다가 실수한 부분이 있어 정리할 겸 포스팅을 하게 되었습니다. 입력이 주어질 때 입력이 asending 오름차순, desecending 내림차순으로 입력되었는지 판별하는 문제입니다. 빠른 입력을 위해 BufferedReader 클래스를 사용하여 입력을 받아주고, 오름차순과 내림차순을 판단할 길이 8의 배열 arr을 만들어줍니다. 13,14번째 줄에서 asending과 desecending을 true로 초기화해줘야 합니다. 그 이유는 밑에서 설명하겠습니다. 16번째 줄에서 각 요소를 정수형으로 캐스팅하여 저장해 주고, 이후에 arr 배열..
·Coding Test/백준
▶ BufferedReader, StringTokenizer, 유클리드 호제법을 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 이번 문제는 간단하게 최대공약수와 최소공배수를 구현할 수 있는지 알아보는 문제입니다. 최소 공배수를 구하기 위해선 최대 공약수를 먼저 구해야 합니다. 최대 공약수를 구하기 위하여 gcd() 함수를 선언해주고, 유클리드 호제법으로 구현했습니다. 먼저 유클리드 호제법을 사용하기 위해선 큰 값과 작은 값을 구해줘야 합니다. Math클래스의 min()과 max() 메소드를 사용하여 구해줍니다. 유클리드 호제법은 나머지가 0이기 전 값을 반환해야 하기 때문에 일 때 큰 값을 반환해 주도록 if문으로 분기처리 해줬습니다. 만약에 0을 구하지 못했으면 다시 제..
지누박
'Coding Test/백준' 카테고리의 글 목록 (8 Page)