Problem Solving1231 [백준] 4889 안정적인 문자열 - Data Structure / Java • 문제 링크 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net • 풀이 과정 입력받은 문자열의 각각의 괄호를 확인하여 여는 괄호라면 stack에 push하고, 닫는 괄호이고, stack이 비어있을 경우 해당 괄호를 뒤집는 연산을 수행하는 의미로 여는 괄호를 push 및 cnt++ 수행, stack이 비어있지 않다면 안정적인 문자열을 만들 수 있으므로 stack을 pop한다. 위와 같은 과정을 수행 후 스택은 비어있거나 여는 괄호만 존재하게된다. 따라서 입력은 짝수개의 괄호이므로 스택에 존재하는 괄호의 절반.. 2023. 3. 14. [백준] 2002 추월 - Data Structure / Java • 문제 링크 2002번: 추월 입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이 www.acmicpc.net • 풀이 과정 차량별 진입 순서를 Map에 저장하고, 출구에서 나온 차량의 진입 순서를 배열에 저장한다. 만약 출구에서 나온 차량의 진입 순서가 이후에 나온 차량보다 크다면 이는 추월한 차량이므로 이때 카운트를 증가시키는 방식으로 추월한 차량의 개수를 구한다. • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException;.. 2023. 3. 13. [백준] 13414 수강신청 - Data Structure / Java • 문제 링크 13414번: 수강신청 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목 www.acmicpc.net • 풀이 과정 순서를 보장하는 Set 자료구조인 LinkedHashSet 을 활용한다. 문제에 제시된 2번째 방식에 의해 이미 해당 원소가 존재한다면 삭제 후 삽입하고, 수강 가능 인원 k명 만큼 Set 에서 꺼내 출력한다. 이때 해당 자료구조는 순서를 보장하므로 먼저 삽입된 순서대로 출력되게 된다. • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import .. 2023. 3. 12. [백준] 20291 파일 정리 - Data Structure / Java • 문제 링크 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net • 풀이 과정 입력받은 파일명을 "." 구분자로 분리할 split 함수에서 "." 을 인식하기 위해, 정규표현식에 따라 "[.]" 또는 "\\." 으로 구분자를 지정한다. 이후 Map의 성질과 getOrDefault 함수를 활용하여 입력받은 확장자 파일의 개수를 저장하고, key 값인 확장자 명으로 정렬하여 확장자명과 해당 개수를 출력한다 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWrit.. 2023. 3. 11. [백준] 2910 빈도 정렬 - Data Structure / Java • 문제 링크 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. 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.ArrayList; import java.util.Collections; import java.util.Comparator; import java.ut.. 2023. 3. 10. [백준] 1822 차집합 - Data Structure / Java • 문제 링크 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소 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.Set; import java.util.StringTokenizer; i.. 2023. 3. 9. 이전 1 ··· 150 151 152 153 154 155 156 ··· 206 다음