백준 111

[백준 20920] 영단어 암기는 괴로워 (JAVA)

https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 객체를 만들고, Map과 ArrayList를 사용하여 문제를 해결하였다. Map의 키는 단어, 값은 단어가 나온 수를 넣는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arra..

Java 2023.02.22

[백준 10825] 국영수 (JAVA)

https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net Student 객체를 생성하여 문제를 풀었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static class Student { String name; int a; //국 ..

Java 2023.02.21

[백준 11286] 절댓값 힙 (JAVA)

https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 우선순위 큐를 사용하여 해결할 수 있었다. 음수일 경우에는 q2에 넣었으며 q2는 내림차순 정렬된 큐이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.PriorityQue..

Java 2023.02.21

[백준 11650] 좌표 정렬하기 (JAVA)

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 객체를 생성하여 x.y값을 비교 정렬하면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.St..

Java 2023.02.19

[백준 10942] 팰린드롬? (JAVA)

https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 배열로 간단하게 해결 가능한 문제였다. 배열을 하나 더 만든 후, 기존의 배열을 뒤집은 값을 넣고 두 배열을 비교하는 방법도 존재한다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[] arr; stat..

Java 2023.02.17

[백준 15586] 퇴사2 (JAVA)

https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net dp문제로, 배열을 생성하여 n번쨰 날짜에 받을 수 있는 돈을 저장한다. 그리고 for문을 돌면서 가장 큰 값을 max로 넣고, 배열에 가장 큰 값을 넣는다. 이 문제의 핵심은 하루 걸리는 업무가 마지막날 존재한다면 해당 업무는 할 수 있는 것이기에, n+2까지 진행해야한다는 것이다.!! import java.io.BufferedReader; import java.i..

Java 2023.02.17

[백준 14425] 문자열 집합 (JAVA)

https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net Set 을 사용해서 set에 존재하는 것이면 count++ 을 하였다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; import java.util.StringT..

Java 2023.02.17

[백준 2096] 내려가기 (JAVA)

https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 100,000 * 100,000 을 하면 상당한 메모리를 차지하기 때문에 이중배열을 사용하면 메모리 초과가 발생한다. 고민끝에 슬라이딩윈도우법을 사용하였다. maxdp는 최대값, mindp는 최소값 배열을 나타낸다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util...

Java 2023.02.16

[백준 1202] 보석 도둑 (JAVA)

https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 내림차순 정렬한 우선순위큐를 이용하여 해결할 수 있었다. 객체를 하나 만들어서 보석의 무게와 가격 속성을 갖는다. 무게순으로 오름차순 정렬한다. 또한 가방도 오름차순 정렬한다. 가방에 넣을 수 있는 보석이라면 큐에 넣고 q.poll()을 하여 result값에 더해준다. import java.io.BufferedReader; import ..

Java 2023.02.15