‡ CODING TEST STUDY ‡ 199

[백준 | Java Silver III] (#15655) N과 M (6)

문제https://www.acmicpc.net/problem/15655접근S14544 (N과 M (5)) 문제와 매우 유사했던 문제인데, 오름차순의 경우만 출력해야 했다.  다음과 같이 dfs 코드에서 i=now부터 시작하게 해서, now를 1씩 증가시키면서 dfs가 호출되도록 해서 구현했다. public static void dfs(int depth, int now){ if(depth == m){ //출력 } for (int i = now; i    최종코드package week13.baek;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.ut..

[백준 | Java Silver III] (#15654) N과 M (5)

문제https://www.acmicpc.net/problem/15654접근대표적인 백트래킹 dfs 문제였다.depth를 매개변수로 주어서 depth == m 일때까지 재귀적으로 dfs를 호출해주고, 깊이가 m이 됐을 때 방문한 노드들을 출력하는 방식으로 풀었다.  최종 코드package week13.baek;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class S15654 { static int[] arr; static boolean[] visited; sta..

[백준 | Java Silver II] (#3085) 사탕 게임

문제https://www.acmicpc.net/problem/3085알고리즘완전탐색(브루트포스)  최종 코드package week12.baek.july26;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class S3085 { static char[][] map; static int n; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Inte..

[백준 | Java Silver V] (#1193) 분수찾기

문제https://www.acmicpc.net/problem/1193접근//(k * (k+1)) / 2 = n// k*(k+1) = 2n// k^2 + k = 2n//1+2 = 3//1+2+3 = 6//1+2+3+4 = 10 등차수열 공식을 통해서 먼저 몇 번째 행, 몇 번째 칸인지 알아낸 후, 짝수/홀수 번째 행의 특징을 이용해서 구하면 됐던 문제이다.  최종 코드package week12.baek.july26;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class S1193 { public static void main(String[] args) throws IOExc..

[백준 | Java Silver IV] (#1158) 요세푸스 문제

문제https://www.acmicpc.net/problem/1158접근ArrayList와 LinkedList는 거의 비슷하지만 ArrayList는 배열, LinkedList는 연결 리스트와 같은 개념으로 ArrayList는 삽입/삭제는 인덱스를 모두 이동해줘야해서 오래 걸리지만, 조회가 빠르다는 장점이 있다. 반면에 LinkedList는 삽입/삭제는 빠르지만, 조회가 상대적으로 오래걸린다.  따라서 이 문제에서는 삭제를 계속해서 해줘야 하기 때문에 LinkedList를 선택해서 순열을 담아줬다.  LinkedList에 담아둔 후, p를 둬서 인덱스를 k-1만큼 계속 옮겨주면서 삭제를 진행했다.    첫번째 코드 - 성공package week12.baek.july26.baek;import java.io...

[백준 | Java Silver V] (#1475) 방 번호

문제https://www.acmicpc.net/problem/1475접근  0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 0~9까지 숫자 세트가 있고, 6,9는 뒤집어서 이용할 수 있다. 즉, 같은 거로 간주하면 된다.0~9까지의 숫자 개수를 Map 형태로 저장하고, 6과 9는 같은 거로 간주해서 반으로 나눠주어서 총 개수 중 가장 큰 것을 출력하면 된다.  최종 코드package week12.baek.july26.baek;import java.io.BufferedReader;import java.io.IOException;import java.io.In..

[백준 | Java Silver II] (#13702) 이상한 술집

문제https://www.acmicpc.net/problem/13702접근low 는 1, high는 주전자의 가장 큰 용량으로 초기화를 한 후 이분탐색을 진행한다.  또, long 타입을 써줬어야 했던 문제!  최종 코드package week12.baek.july23;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class S13702 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR..

[백준 | Java Silver IV] (#10816) 숫자 카드 2

문제https://www.acmicpc.net/problem/10816접근https://xoxoxoxox.tistory.com/314  [백준 | Java Silver IV] (#1920) 수 찾기문제https://www.acmicpc.net/problem/1920접근ArrayList를 사용하면 시간 초과가 뜨고, HashSet을 이용해서 빠르게 탐색해야 통과 됐던 문제이다.   첫번째 제출 - ArrayList 사용, 시간 초과package week12.baek.july23.xoxoxoxox.tistory.com위 문제와 매우 유사했다! 대신 다른 것은 가지고 있는 개수를 반환해야 했던 것 따라서 개수를 저장하기 위해 HashMap를 사용해서 풀었다. 시간 초과의 문제가 있었지만, BufferedWri..

[백준 | Java Silver IV] (#2417) 정수 제곱근

문제https://www.acmicpc.net/problem/2417접근Math.sqrt()를 사용하면 쉽게 구할 수 있었던 문제이다.  이분탐색으로도 푸는 방법이 있다.  최종코드 1 - Math.sqrt() 사용package week12.baek.july23;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class S2417 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in..