본문 바로가기

Algorithms/Baekjoon

(24)
[Java] 백준 알고리즘 12100번 문제 : 삼성 SW 역량 테스트 기출 문제 - 2048(Easy) (DFS, 깊이 우선 탐색) --- 문제 --- --- 코드 --- import java.util.Scanner; public class Bj12100 { public static int N; public static int[][] map; // 방향 왼쪽부터 상 하 좌 우 public static final int[][] DIRECTIONS = {{-1,0},{1,0},{0,-1},{0,1}}; public static int max_value; public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 1. Initialize N = sc.nextInt(); map = new int[N][N]; max_value = 0; // 1-1. N이 1..
[Java] 백준 알고리즘 13460번 문제 : 삼성 SW 역량 테스트 기출 문제 - 구슬 탈출2 (BFS, 너비 우선 탐색) --- 문제 --- --- 코드 --- 두 공을 동시에 같은 방향으로 움직이면서, 그 때 그 때의 상황을 체크해주어야 하므로 BFS 방식을 사용해야 했습니다. (DFS 로 해보려고 했다가 아주 생고생을 했습니다 . // ) 해당 문제의 특이점은 다음과 같습니다. 한번 보드를 기울이면 공이 벽까지 굴러간다. 제가 이부분을 이해 못해서 시간을 다 날렸습니다 ... 보드를 기울였을 때 신의 능력이 있어서 한칸만 구슬을 움직이고 멈출 수 있는 것이 아니었습니다. 무조건 벽이나 구멍이나 다른 구슬이 있을 때까지 굴러가야 합니다. 방문이력을 빨간 구슬과 파란 구슬을 함께 검사해야 한다. 전체적으로 보드를 봤을 때, 빨간 구슬과 파란 구슬 둘의 위치가 똑같이 반복되는 상황이 있으면 결국 그 뒤부터는 똑같은 상황이 반..
[Java] 백준 알고리즘 7568 번 문제 : 덩치 (Brute Force) --- 문제 --- 몸풀기용으로 풀기 좋은 ^>^ (허세..) Brute Force 문제 였습니다. 간단히, 값을 입력 할 때, 이전에 입력된 값들과 하나씩 비교를 해가면서 덩치의 등수를 세가는 방식으로 문제를 풀었습니다. --- 코드 --- import java.util.Scanner; public class Bj7568 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); System.out.println(num); int[][] list = new int[num][2]; int[] result = new int[num]; // Input 받기 및 전 사람들과 덩치 비교..
[Java] 백준 알고리즘 15649, 15650 번 문제 : N과 M 시리즈 (완전탐색) --- 1번 문제 --- 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. --- 코드 --- import java.util.LinkedList; import java.util.Scanner; public class Bj15649 { static boolean[] checked ; static LinkedList ..
[Java] 백준 알고리즘 10816 번 문제 : 숫자 카드 2 (배열) ---문제--- ---코드--- #1. 첫 번째 시도 (HashMap 구조 이용) import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Bj10816 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); Map number = new HashMap(); for(int i=0; i 두번째 시도로, 배열을 이용하였더니 메모리 측면에서는 비효율 적이지만 시간 적으로는 더 효율적이 된 것 같습니다. -> 하지만, 역시나 시간 초과 #3. 세 번째 시도 (배열 이용 , StringBui..
[Java] 백준 알고리즘 2512번 문제 (이분 탐색) ---문제--- ---코드--- import java.util.Scanner; public class Bj2512 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] req = new int[N]; int sum = 0; int max_value = 0; int min_value = 100001; for (int i = 0; i max_value) max_value = req[i]; if ..
[Java] 백준 알고리즘 1654번 문제 (이분 탐색) ---문제--- ---코드--- import java.util.Arrays; import java.util.Scanner; public class Bj1654 { public static long max_result; public static long[] lines; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int K = sc.nextInt(); long N = sc.nextInt(); lines = new long[K]; for(int i=0; i lines[K-2])? lines[K-1]/2 : lines[K-2]); return; } else { long left = lines[K-1]/N ; long..
[Java] 백준 알고리즘 9095번 문제 (Dynamic Programming) --- 문제 --- --- 코드 --- import java.util.Scanner; public class Bj9095 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); int[] n = new int[t]; int max = 0; for(int i=0; i

728x90
반응형