✨ 알고리즘 분류 : 구현, 자료구조, 문자열, 스택 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 🪡 문제에서 요구하는 조건 정리 전에 한번 나왔던 문제이다. 문자열을 입력받고, 띄어쓰기를 기준으로 역순 출력을 하는데 이번에는 옵션이 하나 더 생겼다 '' 안에 들어있는 문자열은 역순이 아니라 순차출력을 하는 것. 같은 코드에서 옵션을 조금 더 주면 어렵지 않다. 🧶 풀이과정 전에 풀었던 것은 단순히 리스트를 ..
Algorithm
✨ 알고리즘 분류 : 구현, 자료구조, https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 🪡 문제에서 요구하는 조건 정리 문제에서 요구하는 내용을 토대로 출력을 하면 된다. 출력 예가 자세히 나와있으므로 따로 조건은 정리하지 않음! 🧶 풀이과정 그동안 스택과 큐를 진행했고, deque이라는 스택+큐 형태의 자료구조를 구현하는 것이라 어렵지 않았다. 대신, 최대한 보기 쉽게 구현하기 위해 노력했다. 🏹 제출코드 package dat..
✨ 알고리즘 분류 : 구현, 자료구조, 큐 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 🪡 문제에서 요구하는 조건 정리 1부터 n까지의 수에서 k번째를 계속해서 제거해나간다. 큐 형태의 구조로, 마지막과 처음이 연결된 형태로 진행된다. n까지의 수를 모두 요세푸스 순열에 저장한다. 🧶 풀이과정 큐를 이용해서 푸는 문제로, 우선, n개의 수를 순차적으로 deque에 담아준 다음, deque에 남아있는 것이 없을 때까지 반복하면서 k 순서의 수를 제거하면 된다. 과정을 표로 보자면 다음과 같은 모습으로 나타낼 수 있다. 편의상 수열은 ..
✨ 알고리즘 분류 : 자료 구조 / 큐 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 🪡 문제에서 요구하는 조건 정리 기본적인 큐에 관한 문제이다. 큐의 특성을 이용하여 입출력을 간단히 구현하도록 하는 것이 조건. 🧶 풀이과정 자바에서는 스택과 큐를 함께 사용하는 deque 이 제공된다. 이것을 통하여 풀이를 하면 되고, 크게 어렵지 않은 문제라 설명이 (...!) 저번 스택 문제에서는 if문을 사용했는데, 조금 더 가독성을 ..
✨ 알고리즘 분류 : 자료구조, 스택, 연결 리스 https://www.acmicpc.net/problem/1406 🪡 문제에서 요구하는 조건 정리 커서는 오른쪽 왼쪽으로 이동하거나 자신의 왼쪽(앞)에 있는 문자열 지우기, 오른쪽(뒤) 에 삽입하기 네가지의 업무를 수행할 수 있다 처음 주어진 문자열 이후에 문장 제일 오른쪽부터 시작된다 🧶 풀이과정 😂첫 풀이 인덱스를 가지고 움직이면서 수행을 하면 되는 구조이다. 얼만큼 변할지 모르는 가변길이의 문자열이 완성될 것으로 예상되기 때문에 인덱스를 사용할 수 있으면서 앞과 뒤의 요소를 쉽게 움직일 수 있는 List를 사용하도록 할 것이다. 리스트를 이용하여 하게 된 결과는 다음과 같다 import java.io.*; import java.util.ArrayLi..
✨ 알고리즘 분류 : 자료구조, 스택 https://www.acmicpc.net/problem/1874 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 🪡 문제에서 요구하는 조건 정리 문제에서 제공되는 수열과 같은 수열을 만들어야 한다. 오름차순으로 1에서 n까지의 수를 스택 연산을 수행, 입력된 수열과 같은 결과가 나오도록 만든다. 연산을 수행하며 push 연산은 +, pop 연산은 - 불가능한 경우 NO를 출력한다. 🧶 풀이..
✨ 알고리즘 분류 : 자료구조 / 문자열 / 스택 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 🪡 문제에서 요구하는 조건 정리 1. 문자열은 두가지 '(' 와 ')' 로 이루어져있다 2. '(' 와 ')' 두가지가 올바르게 짝지어진 상태의 문자열은 YES, 아니라면 NO를 출력한다 🧶 풀이과정 우선, 주어진 것들 하나씩 deque에 담은 다음, 제일 첫번째 것을 빼낸다. 빼낸 괄호가 '(' 라면, 제일 가까운 ..
✨ 알고리즘 분류 : 자료구조 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 🪡 문제에서 요구하는 조건 정리 1. 문장의 주어졌을 때 문장을 뒤집어서 출력한다. 2. 문장 자체의 구조를 뒤집는 게 아니라, 띄어쓰기 기준의 단어만 뒤집어서 출력해야 한다. 🧶 풀이과정 기본적인 배열의 이해와 문자열의 구조에 대해 알고 있으면 어렵지 않게 풀 수 있는 문제이다. 나의 경우는 우선 입력을 받고, 입력을 받은 토대로 단어를 띄어쓰기 기준으로 나..
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 오늘부터는 알고리즘 공부를 분류에 따라서 하나씩 해나가려고 한다. 순서는 아래 블로그를 참고했다! https://patiencelee.tistory.com/1072#2.%20%EC%BD%94%EB%93%9C%EC%97%85%3A%20%EA%B8%B0%EC%B4%88%20100%EC%A0%9C-1 알고리즘 공부 순서 이번 포스팅에서는 알고리즘 공부 순서를 정리해보고자 합니다. 이는..