코딩테스트 838

백준(Python) 1182번 부분수열의 합 풀이

Python으로 구현한 1182번 부분수열의 합 문제 풀이입니다. https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net from itertools import combinations n, s = map(int, input().split()) data = list(map(int, input().split())) result = 0 for i in range(1, n + 1) : for value in combinat..

백준(Python) 6603번 로또 풀이

Python으로 구현한 6603번 로또 문제 풀이입니다. https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net from itertools import combinations while True : try : data = list(map(int, input().split())) if data[0] == 0 and len(data) == 1 : break del data[0] result = [] for combi in combinations..

백준(Python) 1966번 프린터 큐 풀이

Python으로 구현한 1966번 프린터 큐 문제 풀이입니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net t = int(input()) for _ in range(t) : n, m = map(int, input().split()) priority = list(map(int, input().split())) check = [0 for _ in range(n)] check[m] = 1 count = 0 while True : if priority..

백준(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..