본문 바로가기

전체 글1269

[백준] 1966 프린터 큐 - Data Structure / Java • 문제 링크 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 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.LinkedList; import java.util.Queue; import java.util.StringTok.. 2022. 6. 20.
[백준] 17413 단어 뒤집기 2 - Data Structure / Java • 문제 링크 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 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.Stack; public class Main { public static vo.. 2022. 6. 19.
[백준] 9093 단어 뒤집기 - Data Structure / Java • 문제 링크 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 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.Stack; public class Main { public static void main(Strin.. 2022. 6. 18.
[백준] 10799 쇠막대기 - Data Structure / Java • 문제 링크 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net • 풀이 과정 기본적으로 9012번 문제와 유사한 문제이다 [백준] 9012 괄호 - Data Structure / Java • 문제 링크 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄 graycode.tistory.com 입력받은 문자가 '(' 일 경우 스택에 push() 하고 ')' 일 경우 pop.. 2022. 6. 17.
[백준] 1406 에디터 - Data Structure / Java • 문제 링크 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net • 풀이 과정 두 개의 Stack 을 생성, 각각 stk, tmp 로 명칭하고 이를 활용해 커서의 움직임에 따른 문자열의 변화를 구현한다. 기본적으로 stk 이 커서의 왼쪽 영역, tmp가 커서의 오른쪽 영역이라고 인식하며 풀이한다. 각각의 명령어를 스택의 LIFO 구조를 활용하여 L, D, B 는 값이 비어있지 않은 경우 값을 이동 및 삭제, P $ 의 경우 할당된 값을 stk에 삽입한다. 두번째 입력을 예시로 들어 각각 스택의 값 변화를 나타내면.. 2022. 6. 16.
[백준] 1874 스택 수열 - Data Structure / Java • 문제 링크 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net • 풀이 과정 입력받은 수열을 input 배열에 저장하고 Stack 을 활용하여 구현한다. 1 ~ n 까지 오름차 순으로 스택에 push() 할 종료 조건이 오름차 순의 수가 n에 도달 시 인 while 문을 생성, 스택에 값이 삽입될 때마다 StringBuilder에 '+' 를 줄 바꿈과 함께 더한다. 스택이 비어있지 않고, peek() 함수로 반환한 스택의 맨 상.. 2022. 6. 15.