본문 바로가기

Problem Solving1219

[백준] 15828 Router - Data Structure / Java • 문제 링크 15828번: Router 인터넷을 사용하기 위해서는 컴퓨터에 인터넷 회선을 연결하거나 Wi-Fi를 연결해야 한다. 이렇게 연결된 네트워크를 통해 컴퓨터에는 통신이 가능하다. 마음에 드는 노래나 동영상이 있는 곳에 www.acmicpc.net • 풀이 과정 라우터를 Queue 로 구현하고, 해당 큐에 저장할 수 있는 데이터의 수 n 을 입력받는다. -1 을 입력받을 때까지 패킷의 정보를 입력받으며 입력받은 값이 0일 때 큐를 poll 하여 가장 먼저 들어온 값을 처리한다. 그외의 값은 만약 큐의 크기가 n, 즉 라우터의 버퍼보다 작을 경우 여유 공간이 있으므로 해당 값을 offer, 큐의 크기가 n 보다 같거나 클 경우 더 이상 추가로 값을 수용 불가하므로 해당 값을 무시한다. 이러한 과정.. 2022. 11. 3.
[백준] 4949 균형잡힌 세상 - Data Structure / Java • 문제 링크 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net • 풀이 과정 하나 또는 여러 줄의 입력된 문자열이 "." 일 때까지 문자열을 입력받는다. 미리 생성한 제네릭이 Character 인 Stack 에 각 문자열 처리 완료시마다 clear 하여 비운다. 각각의 문자열을 토큰 단위로 쪼개어 토큰이 여는 괄호일 시 ('(' || '[') 스택에 push 하고, 닫는 괄호일 시 (')' || ']') 스택이 비어있지 않고, peek 으로 확인한 스택 상단의 값이 토큰과 짝이 맞는 여는.. 2022. 11. 2.
[백준] 10773 제로 - Data Structure / Java • 문제 링크 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net • 풀이 과정 k 개의 정수를 입력받으며 0을 입력받을 경우 pop 하여 이전에 입력받은 값, Stack 의 맨 상단의 값을 제거한다. 문제의 조건 상 이전에 입력받은 값이 있어야 0을 입력받으므로 Stack 이 비어있는 지는 확인하지 않는다. 그외의 입력받은 각각의 정수들은 Stack 에 push 한다. 이러한 과정을 거친 후 Stack 에 남아있는 값을 모두 꺼내어 sum 에 더해 정답으로써 출력한다. • 풀이 .. 2022. 11. 1.
[백준] 1647 도시 분할 계획 - Graph Theory / Java • 문제 링크 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.PriorityQueue; import java.util.StringT.. 2022. 10. 31.
[백준] 1613 역사 - Graph Theory / Java • 문제 링크 1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { static int n; stati.. 2022. 10. 30.
[백준] 1956 운동 - Graph Theory / Java • 문제 링크 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; import java.util.StringTokenizer;.. 2022. 10. 29.