목록백준 (59)
알고리즘
1번 → 문자열의 Palindrome을 체크 값, 재귀 함수의 실행 횟수를 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int recursion_count; //recursion 함수 호출 횟수를 구하기 위한 변수이다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다. int T = Int..
1번 → 재귀를 이용한 피보나치 수 계산 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다. int N = Integer.parseInt(br.readLine()); //N번째 피보나치 수를 계산하기 위한 N을 입력받는다. int fibo = solve(N); //N번째..
* 배운 점 입력된 값에 중복은 있으나 출력은 입력 수만큼 해야 한다는 생각에 'HashMap 은 key 중복이 안 되므로 사용하면 안된다' 고 넘겨짚었다. -> 'key value 를 상황에 따라 적절히 넣어주면 된다.' 문제를 풀면서 자료구조가 언제 어떻게 쓰이면 될 지 정확히 이해하고 넘어가도록 하자 1번 (시간초과) → 2번과 비슷하게 접근했으나, HashMap 자료구조를 사용하지 않고 직접 중복된 값을 제거하는 과정 + list.indexof() 에서 시간초과가 났을 것으로 예상한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList..
1번 → Arrays.sort(T[] a, Comparator
1번 → Arrays.sort(T[] a, Comparator
1번 → Arrays.sort(T[] a, Comparator
더보기 처음 문제를 보고 접근했을 때 Dictionary, 자바에서 Map 자료구조를 생각하고 접근했으나, Map 에서는 key 값이 중복이 안된다는 것을 깨닫고 포기했다. ( 물론 찾아보니 MultiValueMap 도 있었지만, 문제의 의도는 이게 아닌 것 같아.. ) 다음은 저번에 학습했던 Counting 배열로 풀어볼까 했다. 아니나 다를까 x,y 좌표의 x,y
1번 → Integer 배열 객체와 Arrays.sort() 를 이용한 내림차순 정렬 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; public class Main { //시간 복잡도 : O(n(log(n))) ~ O(n^2) //공간 복잡도 : 수의 자릿수만큼의 배열 공간 필요 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReade..