➜ 코딩 테스트/백준

백준[JAVA] - 점프 (1890)

동적 계획법을 사용하는 문제였다 열심히 풀어보려했지만 한계점까지 풀고 결국 힌트를 얻어서 풀 수 밖에 없었다.. 아직 dp를 활용하는 방법이 익숙하지 않은 것 같다 package S1_Baekjoon; import java.util.*; public class Baekjoon1890 { public static void main(String[] args){ //가장 왼쪽 위 칸에서 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것 //각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리 //오른쪽이나 아래로만 이동 //0은 종착점 //항상 현재 칸에 있는 수만큼 오른쪽이나 아래로 가야함 //규칙에 맞게 이동할 수 있는 경로의 개수 구하기 Scanner sc = new Scanner(System.in)..

➜ 코딩 테스트/백준

백준[JAVA] - 동전 0 (11047)

A[i] 가 오름차순으로 나열되어 있다고 했으니 배열의 인덱스값을 높은곳에서 한개씩 내리면 K보다 큰수를 제거하면서 순차적으로 내려갈 수 있다 그래서 반복문을 돌리며 K보다 큰 수는 제거하고 K보다 작은 수지만 A[i]값중 가장 큰 수부터 계산을 시작해서 값을 도출할 수 있었다! package S4_Baekjoon; import java.util.*; public class Baekjoon11047 { public static void main(String[] args){ // 동전을 적절히 사용해서 합을 K로 만들기 // N는 동전의 개수 // K는 동전의 가치 // A[i] 는 동전의 가치 //K원을 만드는데 필요한 동전 개수의 최솟값 Scanner sc = new Scanner(System.in);..

➜ 코딩 테스트/백준

백준[JAVA] - 수들의 합 2 (2003)

이중 for 문으로 어렵지 않게 풀었던 것 같다 import java.util.*; public class Baekjoon2003 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int[] A = new int[N]; int count = 0; for(int i = 0; i < N; i++){ A[i] = sc.nextInt(); } for(int i = 0; i < N; i++){ int sum = 0; for(int j = i; j < N; j++){ sum += A[j]; if(sum == M){ count++; } } } Sys..

➜ 코딩 테스트/백준

백준[JAVA] - 2차원 배열의 합 (2167)

이번 문제는 2차원 배열을 활용할줄만 알면 쉽게 풀 수 있는 문제였다! package S5_Baekjoon; import java.util.*; public class Baekjoon2167 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); // 배열의 행 수 입력 int M = sc.nextInt(); // 배열의 열 수 입력 int[][] vec = new int[N][M]; // N x M 크기의 2차원 배열 생성 // 2차원 배열에 값 입력 for(int i = 0; i < N; i++){ for(int j = 0; j < M; j++){ vec[i][j] = sc.n..

➜ 코딩 테스트/백준

백준[JAVA] - 팰린드롬 만들기 (1254)

팰린드롬을 확인하는 방법까지는 고민한 부분이 맞았으나 어떤 방식으로 구현해야 할지에서 막혔던 문제다 아직은 많이 부족한 것 같다 팰린드롬은 첫 글자와 끝 글자가 같은지 확인하면 된다 그리고 앞부분을 한개씩 잘라내면서 잘라낸 부분이 팰린드롬인지 확인한다 예시를 들면 abab는 앞 뒤가 다르다 앞을 잘라 bab를 만든다 그럼 bab는 팰린드롬이 맞다 그럼 반복 횟수는 0 부터 시작해서 두번째 이므로1 abab의 길이는 4로 5를 출력하게 된다 qwerty가 sub가 어떻게 이뤄지는지 확인할 수 있다 package S2_Baekjoon; import java.util.*; public class Baekjoon1254 { public static void main(String[] args){ Scanner s..

➜ 코딩 테스트/백준

백준 - (11725)트리의 부모 찾기

이번 문제는 dfs 문제였다 dfs에 대해서 잘 몰랐던 나는 조금 난관을 겪었다 일단 트리를 그려봤다 이런식으로 트리가 만들어진다 문제는 루트가 없는 트리 구조에서 각 노드의 부모를 찾는 문제이다. 그리고 루트 노드는 1이다 2의 부모는 4 3의 부모는 6 4의 부모는 1 5의 부모는 3 6의 부모는 1 7의 부모는 4 이런 식으로 출력이 나오게 만들면 된다 이 문제를 풀기 위해선 트리를 구성하는 노드와 엣지를 표현하고 각 노드의 부모를 찾아야 된다 노드와 엣지를 표현하기 위해 ArrayList를 사용했고 ArrayList의 각 요소는 각 노드를 나타낸다. 그리고 그 요소에 저장된 값들은 해당 노드에 연결된 이웃 노드다 이렇게 트리를 만들면 dfs를 사용해서 탐색해 주면 된다. package S2_Bae..

➜ 코딩 테스트/백준

백준 - (5613)계산기 프로그램

package B3_Baekjoon; import java.util.Scanner; public class Baekjoon5613 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int sum = sc.nextInt(); while (true) { String op = sc.nextLine(); if (op.equals("=")) { break; } switch (op) { case "+": sum += sc.nextInt(); break; case "-": sum -= sc.nextInt(); break; case "*": sum *= sc.nextInt(); break; case "/": sum /= sc...

➜ 코딩 테스트/백준

백준 - (1158)요세푸스 문제

이 문제는 Linkedlist를 활용해서 풀었다 이 문제는 K값의 인덱스 값에 맞는 리스트를 삭제하는 문제이다 package S4_Baekjoon; import java.util.LinkedList; import java.util.Scanner; public class Baekjoon1158 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); // 사용자로부터 N과 K를 입력받음 int N = sc.nextInt(); int K = sc.nextInt(); // 1부터 N까지의 수를 가진 LinkedList 생성 LinkedList list = new LinkedList(); for(int i = 1; i

➜ 코딩 테스트/백준

백준 - (2830)행성 X3

첫 골드 3 문제이다 좀 두려움이 앞섰지만 그래도 풀어보려고 노력해보겠다.. 문제는 어렵지 않다 그냥 XOR 연산 처리한걸 다 합하면 된다 하지만 그냥 풀게 되면 시간 초과가 난다 package G3_Baekjoon; import java.util.Scanner; public class Baekjoon2830 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] X3 = new int[N]; int answer = 0; for (int i = 0; i < N; i++) { X3[i] = sc.nextInt(); } for (int i = 0; i < X3.length..

➜ 코딩 테스트/백준

백준 - (10807)개수 세기

해시 테이블로 풀어야 되는 과제라 해시로 풀었다. package B5_Baekjoon; import java.util.HashMap; import java.util.Scanner; public class Baekjoon10807 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); HashMap hashMap = new HashMap(); for(int i = 0; i < N; i++){ int number = sc.nextInt(); hashMap.put(number, hashMap.getOrDefault(number, 0) +1); } int v = sc.nextInt(); ..

강맹석
'➜ 코딩 테스트/백준' 카테고리의 글 목록