백준(Python) 풀이 477

백준(Python) 1158번 요세푸스 문제 풀이

Python으로 구현한 1158번 요세푸스 문제 문제 풀이입니다. https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net n, k = map(int, input().split()) data = [i for i in range(1, n + 1)] index = 0 result = [] for _ in range(n) : index += (k - 1) if index >= len(data) : index %= len(data) result.append(str(data[index])) data.pop(index) print('') 1. 1부터 n까..

백준(Python) 1874번 스택 수열 풀이

Python으로 구현한 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 n = int(input()) count = 0 stack = [] result = [] flag = True for _ in range(n) : data = int(input()) while count < data : count += 1 stack.ap..

백준(Python) 9012번 괄호 풀이

Python으로 구현한 9012번 괄호 문제 풀이입니다. https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net t = int(input()) for _ in range(t) : data = list(input()) open = 0 for d in data : if d == '(' : open += 1 else : open -= 1 if open 0..

백준(Python) 10867번 중복 빼고 정렬하기 풀이

Python으로 구현한 10867번 중복 빼고 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net n = int(input()) data = list(map(int, input().split())) def merge_sort(data) : if len(data)

백준(Python) 11651번 좌표 정렬하기 2 풀이

Python으로 구현한 11651번 좌표 정렬하기 2 문제 풀이입니다. https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net n = int(input()) data = [] for _ in range(n) : x, y = map(int, input().split()) data.append((x, y)) data = sorted(data, key=lambda x: (x[1], x[0])) for..

백준(Python) 11650번 좌표 정렬하기 풀이

Python으로 구현한 11650번 좌표 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net n = int(input()) data = [] for _ in range(n) : x, y = map(int, input().split()) data.append((x, y)) data = sorted(data, key=lambda x: (x[0], x[1])) for d i..

백준(Python) 1406번 에디터 풀이

Python으로 구현한 1406번 에디터 문제 풀이입니다. https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net import sys input = sys.stdin.readline data = list(input().rstrip()) temp = [] n = int(input()) for _ in range(n) : order = list(input().split()) if order[0] == 'L' : # 커서를 왼쪽으로 한 칸 이동 if data..

백준(Python) 1181번 단어 정렬 풀이

Python으로 구현한 1181번 단어 정렬 문제 풀이입니다. https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net n = int(input()) data = [] for _ in range(n) : value = input() data.append(value) data = list(set(data)) data = sorted(data, key=lambda x: (len(x), x)) for d in data : print(d) 1. n개..

백준(Python) 10866번 덱 풀이

Python으로 구현한 10866번 덱 문제 풀이입니다. https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline n = int(input()) q = deque([]) for _ in range(n) : order = list(input().split()) if order[0] == 'push_front' : # 정..

백준(Python) 10845번 큐 풀이

Python으로 구현한 10845번 큐 문제 풀이입니다. https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) data = [] for _ in range(n) : order = list(input().split()) if len(order) == 2 : # 'push X'일 경우 data.append(int(order[1])) elif..