본문 바로가기

코딩테스트48

[백준 1406] 에디터 - 자바 https://www.acmicpc.net/problem/1406 1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 www.acmicpc.net 1. 풀이 알고리즘 문제를 푸는데 어떠한 알고리즘을 사용할지 결정하는 것이 매우 중요하다고 느낀 문제이다. 스택에 대해서 잘 안다고 생각했지.. 2020. 4. 24.
[백준 1874] 스택 수열 - 자바 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. 풀이 알고리즘 문제는 풀면 풀수록 좌절과 함께 내가 겸손해지는 것 같다.. 처음 문제를 보고 머리속에 풀이가 떠올랐지만, 코드로 바꾸는데는 어려움이 많았다. 오늘도 알고리즘을 풀며 한번 더 겸손해진다. 우선 문제는 수를 스택을 이용해 넣었다가 뽑아 늘어놓음으로써 수열이 완성 될 수 있는가 없는가이다. 된다면 p.. 2020. 4. 24.
[백준 9012] 괄호 - 자바 https://www.acmicpc.net/problem/9012 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc www.acmicpc.net 1. 풀이 스택에 관한 대표적인 문제이다. '여는 괄호(' 를 스택에 넣고(push), '닫는 괄호)'를 만나면 스택에서 여는 괄호를 하나씩.. 2020. 4. 23.
[백준 9093] 단어 뒤집기 - 자바 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 www.acmicpc.net 1. 풀이 스택을 이용하면 쉽게 풀이할 수 있는 문제입니다. 자바의 Scanner로 풀다가 nextLine()에서 짜증났지만, 그래도.. 2020. 4. 23.
[백준 10828] 스택 - 자바 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 1. 풀이 이 문제는 스택을 구현할 수 있느냐 없느냐를 묻는 문제인 듯하다. 자바 Collection에 정의된 스택을 사용해도 되고, 그냥 배열과 size변수를 선언하여 풀어도 될듯하다. 2. 코드 import java.util.*; public class Main { public static void main(String[] args) { S.. 2020. 4. 23.
[백준 1924] 2007년 https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 1. 풀이 문제에서 1월 1일이 월요일이라고 했고, 기존의 달력 체계를 지키므로 아래와 같은 표가 나옵니다. 노란색, 파란색, 빨강색 순서대로 1,2,3월을 나타냅니다. 일 월 화 수 목 금 토 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 .. 2020. 4. 11.