Keep Going

빠르지 않아도 꾸준히

백준 76

[실버 4] [Java] 백준 10816번: 숫자 카드 2

아이디어첫째 줄에 총 숫자 카드의 수 N둘째 줄에 가지고 있는 숫자 카드들 모두의 정수 N개셋째 줄에 몇 개가 있는지 확인하고 싶은 숫자의 수 M넷째 줄에 몇 개가 있는지 확인하고 싶은 숫자 카드들의 정수 M개 이렇게 입력받는다. 카드의 수가 중복될 수 있고, 나중에 이 카드가 몇개 있는지 확인해야 하므로배열을 사용할 경우 굉장히 시간이 오래 걸릴 수 있어 Map을 쓰기로 했다.첫째 줄과 둘째 줄의 입력을 통해 map에 숫자 카드들과 그 카드의 수를 입력했다. map에 해당 카드 숫자가 없다면 map.put(num, 1)하고만약 map에 해당 카드가 이미 존재한다면 map.put(num, map.get(num) + 1)을 해주었다. 그 후 셋째, 넷째 줄의 입력을 수행할 때에는 map.containsKe..

백준/Silver 2025.07.25

[실버 4] [Java] 백준 11866번: 요세푸스 문제 0

아이디어1부터 N까지의 사람들이 원을 이루며 앉아있고-> 수열에 정수를 담아놓고 int iter = 0;을 이용해서 iter++을 해주다가 iter이 N으로 나누어 떨어질 때 iter을 0으로 바꾸며 반복K번째 사람을 제거한다. 이를 모든 사람이 제거될 때까지 반복한다. -> int count = 1;부터 시작하여 반복문에서 count++를 반복하다가 count 가 K와 같아질 때의 arr[iter]을 -1로 바꾸고, 그 때의 정수를 StringBuilder에 저장한다. 그 후 count를 다시 1로 바꾼다. 한 바퀴를 돈 후 arr[iter]가 -1인 경우는 제거된 경우이므로 count++는 수행하지 않고 iter++만 수행하여 건너뜀을 표현한다. 이를 코드로 구현하면 다음과 같다.import java..

백준/Silver 2025.07.24

[실버 4] [Java] 백준 10845번: 큐

아이디어큐를 구현하는 문제이다. 큐는 FIFO (First In First Out)으로 스택과는 달리 먼저 줄에 들어간 데이터가 먼저 나오는 자료구조이다.C나 C++로 했으면 직접 구현했을 것 같은데, Java로 하니까 IDE에서 LinkedList 자료형을 추천해주길래 냅다 썼다.이 오브젝트를 사용하니까 알아서 함수가 구현이 되어있더라... 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;public class N10845 { public static void main(String[] args) thro..

백준/Silver 2025.07.23

[실버 4] [Java] 백준 10828번: 스택

아이디어그냥 스택 문제이다. count를 이용해서 스택이 현재 어디를 가리키고 있는지 확인한다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class N10828 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] stack = ..

백준/Silver 2025.07.22

[실버 4] [Java] 백준 9012번: 괄호

아이디어굉장히 유명한 Stack 문제이다. 하지만 실제로 Stack에 데이터를 넣을 필요는 없고, 그냥 짝만 맞는지, '()'가 ')('로 뒤집어져 처음 나온게 없는지만 확인하면 되니 '('가 나오면 int stack을 ++, ')'가 나오면 --하고, stack이 음수가 되지 않는지만 체크해줬다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class N9012 { public static void main(String[] args) throws IOException { BufferedReader br = new Buffer..

백준/Silver 2025.07.18

[실버 4] [Java] 백준 2164번: 카드2

아이디어처음에는 배열을 계속 만들면서 바꾸고 바꾸고 하는 생각만 났는데, 너무 실행시간이 오래 걸릴 것 같아서 규칙을 찾으려 해봤다(0) N = 1; 1(1) N = 2; 12->2(1) N = 3; 123->32, 32->2(3) N = 4; 1234->342, 342->24, 24->4(1) N = 5; 12345->3452, 3452->524, 524->42, 42->2(3) N = 6; 123456->34562, 34562->5624, 5624->246->64, 64->4(5) N = 7; 1234567->345672, 345672->56724, 56724->7246->462, 462->6괄호 안에 있는 것은 정답수(마지막에 남는 수)의 인덱스이다.N이 3일 때 까지는 그냥 입력된 N에 따라서 출..

백준/Silver 2025.07.17

[실버 4] [Java] 백준 1920번: 수 찾기

아이디어문제의 개념 자체는 굉장히 쉽다. 정수가 있는 첫째 수열과 둘째 수열을 비교해서 둘째 수열의 각 원소가 첫째 수열에 들어있는지 각각 확인해서 있으면 1, 없으면 0을 출력하는 문제이다. 처음에는 int[]와 Arrays를 사용해서 비교했는데, 시간 초과가 걸렸다. Arrays의 anyMatch를 사용했는데 이것도 for문 기반인가보다. 그래서 HashSet으로 첫째 수열을 설정했다. 어차피 각각 확인해야 할 것은 둘째 수열이고, 첫째 수열에 들어갈 입력값에 중복된 수가 있든 없든 상관이 없기 때문이다.그 후 두번째 수열을 Set.contains()를 이용해서 포함되어있는지 확인했다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io...

백준/Silver 2025.07.16

[실버 5] [Java] 백준 11650번: 좌표 정렬하기

아이디어첫째 줄에 좌표의 총 개수인 N을 입력받고두번째 줄부터 좌표를 한 줄씩 입력받는다.x좌표대로 오름차순 정렬을 하되, x좌표가 같으면 y좌표를 오름차순으로 정렬하면 된다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class N11650 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

백준/Silver 2025.07.15

[실버 5] [Java] 백준 10814번: 나이순 정렬

아이디어먼저 입력할 사람의 정보의 수를 N으로 받고그 다음 나이와 이름 순으로 각 줄에 입력받는다.그 후 나이순으로 정렬하고, 나이가 같다면 입력된 순으로 정렬해야 한다.보통 Arrays.sort()를 사용하면 첫번째 열, 두번째 열 순서로 정렬이 될 것이고, 입력된 순이 배열에 정보가 없으므로 따로 추가해줬다.그리고 배열에 서로 다른 자료형이 들어가야 하므로 Object[][]를 사용하였다.이 배열에는 [나이(int age), 입력순(int i), 이름(String name)]이 저장된다. Comparator의 chain 연결로 첫번째 열, 두번째 열 순으로 정렬해주면 된다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.InputSt..

백준/Silver 2025.07.12

[실버 1] [Java] 백준 2751번: 수 정렬하기 2

아이디어단순히 수를 정렬하는 문제이다. 먼저 몇개의 수가 입력될지 N을 입력받고, 그만큼 수를 입력받아 Array 혹은 list에 입력하면 된다.그 후 sort를 이용해 정렬하면 된다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;public class N2751 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.pa..

백준/Silver 2025.07.11