[Baekjoon] Silver4 10773 제로
2022. 7. 20. 20:13
알고리즘/Baekjoon
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net [문제 요약] 구해야 하는 것 : 제로로 제외한 후 모든 수의 합 문제 핵심 요약 : 스택 [풀이법 요약] 1. 스택으로 데이터 저장 후 합 구하기 package BOJ; import java.io.*; import java.util.Stack; public class BOJ_S4_10773_제로 { static int K; public static void ma..
[Baekjoon] Silver3 3273 두 수의 합
2022. 7. 20. 19:07
알고리즘/Baekjoon
https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net [문제 요약] 구해야 하는 것 : 합 X를 가지는 두 수의 쌍 구하기 문제 핵심 요약 : 정렬, 투 포인터 [풀이법 요약] 1. 배열 정렬하기 2. 투 포인터로 개수 구하기 package BOJ; import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; publi..
[Baekjoon] Silver5 1475 방 번호
2022. 7. 19. 22:32
알고리즘/Baekjoon
https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net [문제 요약] 구해야 하는 것 : 필요한 세트의 개수의 최솟값 문제 핵심 요약 : 배열 [풀이법 요약] 1. 배열로 각 숫자의 개수를 계산한다. 2. 세트의 최솟값을 구한다. package BOJ; import java.io.*; import java.util.Arrays; public class BOJ_S5_1475_방_번호 { static int[] num; public static void main(String[] args) throws IOException { BufferedReader ..
[Baekjoon] Bronze2 2577 숫자의 개수
2022. 7. 19. 22:02
알고리즘/Baekjoon
https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net [문제 요약] 구해야 하는 것 : 각각의 숫자가 몇 번씩 쓰였는지를 구하자! 문제 핵심 요약 : 배열 [풀이법 요약] 1. 배열로 각 숫자의 개수를 계산한다. package BOJ; import java.io.*; public class BOJ_B2_2577_숫자의_개수 { static int[] num; public static void main(String[] args) throws IOException { BufferedReader br = ne..
[JUNGOL] 1863 종교
2021. 3. 18. 08:33
알고리즘/JUNGOL
🤔 java.lang.StackOverflowError..? import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_1863_종교 { static class Node { int vertext; Node next; public Node(int vertex, Node next) { this.vertext = vertex; this.next = next; } } static int n; static Node[] adjList; static boolean[] visited; public static void main(String[] args) throws Ex..
[Baekjoon] Silver3 14889 스타트와 링크
2021. 3. 17. 23:46
알고리즘/Baekjoon
구해야 하는 것 : 스타트 팀의 능력치와 링크 팀의 능력치의 차이의 최소값 문제 핵심 요약 : 백트래킹 1. 조합을 사용하여 N/2개의 원소를 가지는 팀 배열을 구한다. 2. 1을 이용하여 나머지 팀 배열도 구한다. 3. 각각 팀의 능력치의 합을 계산하여 차이를 구한다. 4. 차이의 최소값을 구하여 출력한다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main_14889_스타트와_링크 { static int[][] map; static int[] people, teamA, teamB; static int ..
[Baekjoon] Gold5 1759 암호 만들기
2021. 3. 16. 21:58
알고리즘/Baekjoon
구해야 하는 것 : 가능성 있는 모든 암호들 구하기 문제 핵심 요약 : 백트래킹 기저 조건 1. answer의 길이가 L이고 최소 한개의 모음, 두 개의 자음을 만족한다면 출력 2. 남은 알파벳의 개수가 앞으로 만들어야 할 암호의 길이보다 작다면 return 재귀 1. index에 해당하는 알파벳 포함 2. index에 해당하는 알파벳 불포함 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main_1759_암호_만들기 { static int L, C; public static void main(String[]..
[SW Expert Academy] 1953 탈주범 검거
2021. 3. 16. 13:55
알고리즘/SW Expert Academy
구해야 하는 것 : 경과 시간 동안 탈주범이 위치할 수 있는 장소의 개수 문제 핵심 요약 : bfs + 조건 체크 두가지의 조건만 체크해주면 된다! 그 외는 전형적인 bfs 1. "해당 타입별"로 이동할 수 있는지 2. 이동하는 위치에서 가능한 "다음 타입" import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Solution_1953_탈주범_검거 { static class Point { int x; int y; int cnt; public Point(int x, i..
[SW Expert Academy] D4 10966 물놀이를 가자
2021. 3. 16. 13:53
알고리즘/SW Expert Academy
구해야 하는 것 : 물인 칸으로 이동하기 위한 최고 이동 횟수의 합 문제 핵심 요약 : 물을 기준으로 bfs 1. map에 물인 위치를 -1로 표시 + Queue에 넣어주기 2. 물인 위치를 기준으로 bfs 3. bfs를 돌리면서 map에 이동 횟수 넣어주기 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Solution_10966_물놀이를_가자 { static class Point { int x; int y; int dis; public Point(int x,..
[SW Expert Academy] D4 8382 방향 전환
2021. 3. 15. 22:58
알고리즘/SW Expert Academy
구해야 하는 것 : (x1, y1)에서 (x2, y2)로 이동하기 위한 최소 이동 횟수 문제 핵심 요약 : 차이값을 이용 + 홀수 / 짝수 구분 1. x,y각각 좌표의 차이를 저장한다. 2. 차이가 같다면 차이X2를 return 한다. 3. 차이 중 작은 값을 저장한다. - (1) 4. x,y 각각 좌표 차이의 "차이"를 저장한다. -(2) 5. (1)은 x,y모두 가야하기 때문에 X2를 해준다. 6-1. (2)는 짝수일 때 X2번 6-2. (2)는 홀수일 때 X2-1번 6-3. 계산한 값을 return 한다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public cla..