본문 바로가기

전체 글190

[백준] 11866번 요세푸스 문제 0 (Python 파이썬) www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 설명 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 풀이 과정 N = 7, .. 2021. 4. 16.
[백준] 17298번 오큰수 (Python 파이썬) www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 설명 수열이 주어질 때, 수열의 각 원소Ai를 기준으로 오른쪽에 위치한 원소중 Ai보다 크면서 가장 왼쪽에 있는 수를 출력해야 한다. 단, 없을 경우 -1를 출력한다. 예를 들어, A=[3, 5, 2, 7] 이라는 수열이 있을 때 3의 오른쪽에 있으면서 3보다 큰 수 중 가장 왼쪽에 있는 원소는 5이고 5의 오른쪽에 있으면서 5보다 큰 수 중 가장 왼쪽에 있는 원소는 7이다. 그래서 [5, 7, 7, -1] 이라는 정답.. 2021. 4. 15.
[백준] 1874번 스택 수열 (Python 파이썬) 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 문제 설명 문제가 조금 이해하기 어려울 수 있는데, 스택에 수를 push 할 때는 반드시 오름차순으로만 push할 수 있다. 예를 들어, 8을 push해야 한다면 앞의 1~7까지를 모두 push하고 8을 push할 수 있다. 그리고 스택을 쌓다가 필요한 타이밍에 pop을 하게 되는데, 이 pop을 한 수들을 쭉 나열했을 때, N줄.. 2021. 4. 13.
[백준] 4949번 균형잡힌 세상 (Python 파이썬) www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 문제 설명 괄호들의 균형이 잘 맞춰져 있는지 확인하는 문제이다. 괄호는 소괄호"()"와 대괄호"[]"가 있으며 다음과 같은 규칙이 있다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다. 모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다. 모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다. 모든 괄호들의 짝은 1:1 매칭만 가능하.. 2021. 4. 13.
[백준] 9012번 괄호 (Python 파이썬) www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 설명 "( ( ) ) " or "( )( )" 등 괄호가 정상적으로 닫혔을 경우에는 YES 를 출력하고 "( ( ) ( " or "( ( ) " 등 괄호가 정상적으로 닫히지 않았을 경우에는 NO를 출력하는 문제이다. 풀이 과정 스택의 pop을 이용하기 때문에 가장 처음에는 " ) " 가 나와야 한다. 그리고 " ) " 를 꺼내지 않았는데 " ( " 가 나오는 경우도 정상적인 .. 2021. 4. 12.
[백준] 10773번 제로 (Python 파이썬) www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 설명 기본적인 스택을 이용한 문제이다. 첫째 줄에 입력할 정수의 개수 K를 입력하고 다음 K번 동안 정수를 입력받는다. 0일 경우 가장 최근에 넣은 수를 꺼내고, 나머지 경우에는 스택에 입력을 넣어주면 된다. 풀이 과정 0을 입력할 경우 가장 최근에 쓴 수를 지우라고 했으므로 스택의 pop 기능을 사용하면 된다. 마지막에는 sum함수를 이용해 스택의 모든 수를 더하면 된다.. 2021. 4. 12.