본문 바로가기

Java/백준

(106)
[JAVA] 백준 2164 카드 2 2164번: 카드2 (acmicpc.net) 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 풀이 과정 - 제일 앞에 있는 요소 디큐 후 그 다음 요소 디큐하여 temp에 담고 - temp를 인큐 - 위의 과정을 큐의 크기가 1보다 클때까지 반복 정답 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputS..
[JAVA] 백준 18258 큐 2 18258번: 큐 2 (acmicpc.net) 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 과정 - Deque 인터페이스로 선언한 뒤 LinkedList로 생성하여 이용 - push X = 정수 X를 큐에 넣는 연산 - pop = 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력, 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력 - size = 큐에 들어 있는 정수의 개수를 출력 - empty = 큐가 비어 있으면 1, 아니면 0을 출력 - front = 큐의 가장 앞에..
[JAVA] 백준 11478 서로 다른 부분 문자열의 개수 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 풀이 과정 - 이중 반복문을 이용해 substring으로 자른 문자열을 HashSet에 저장 - HashSet의 size 출력 String substring() https://velog.io/@chosj1526/JAVA-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9E%90%EB%A5%B4%EA%B8%B0-substring-split velog velog.io - 파라미터 2개는 시작 지점과 끝지점을 전달받아 시작지점부터 끝지점 -1까지 리턴 문자열변수..
[JAVA] 백준 1269 대칭 차집합 1269번: 대칭 차집합 (acmicpc.net) 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 풀이 과정 - n개의 수를 HashSet에 추가 - m개의 수 만큼 입력받고 입력받은 수가 이미 HashSet에 포함되어 있는 숫자라면 그 숫자를 HashSet에서 제거 - 포함되어 있지 않다면 HashSet에 추가 - 위의 과정 완료 후 HashSet의 크기 출력 정답 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io...
[JAVA] 백준 13909 창문 닫기 13909번: 창문 닫기 (acmicpc.net) 13909번: 창문 닫기 첫 번째 줄에는 창문의 개수와 사람의 수 N(1 ≤ N ≤ 2,100,000,000)이 주어진다. www.acmicpc.net 풀이 과정 오늘의 코드. 7일차 (백준/13909번 창문 닫기) (tistory.com) 오늘의 코드. 7일차 (백준/13909번 창문 닫기) 해당 문제와 비슷한 내용을 수학퀴즈 관련된 도서에서 본 기억이 나서 문제를 풀어보게 되었다. Baekjoon / Problem No. 13909 (창문 닫기) Problem 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 dailycode.tistory.com - N의 약수의 개수가 짝수면 창문이 열리고 홀수면 닫히는 것 - 약수가 홀수개인 수, 즉 제곱수..
[JAVA] 백준 1764 듣보잡 1764번: 듣보잡 (acmicpc.net) 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이 과정 - 듣도 못한 사람을 HashSet에 추가 - 보도 못한 사람을 입력으로 받아 HashSet에 포함되어 있으면 result 리스트에 추가 - Collections.sort를 이용해 result 리스트를 사전순으로 출력 정답 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.i..
[JAVA] 백준 10816 숫자 카드 2 10816번: 숫자 카드 2 (acmicpc.net) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 풀이 과정 - 중복 원소의 개수를 구해야 함 - 중복 원소의 왼쪽 끝 값과 오른쪽 끝 값을 각각 알아내는 - lower_bound /Upper_bound를 이용 - 중복 원소에 대한 길이 = (상한 - 하한) [C언어 / 백준 - 10816] 숫자 카드2 / lower_bound, Upper_bound (tistory.com) [C언어 / 백준 - 10816] 숫자 카드2 /..
[JAVA] 백준 7785 회사에 있는 사람 7785번: 회사에 있는 사람 (acmicpc.net) 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 풀이 과정 - 이름과 로그를 map에 저장 - entry.getValue().equals("Enter")이면 ArrayList에 저장 ((이름, "Leave")가 들어오면 Enter 값은 사라지고 갱신 -> Leave 값 삭제 불필요) - Collections.sort(list, reverseOrder)를 통해 사전 순의 역순으로 정렬 HashMap [Java] 자바 ..