파이썬 404

[baekjoon] 백준 11279번(파이썬): 최대 힙

문제 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 알고리즘 - 연산의 개수만큼 반복한다. - 연산에 대한 정보 x가 0이라면 배열에서 가장 작은 값을 출력한다. - 배열이 비어 있는데 가장 작은 값을 출력해야 하면 0을 출력한다. - x가 0이 아니라면 배열에 x를 힙 푸시한다. - 최대 힙을 구해야 하므로 힙 푸시를 할 때 '-' 해주어 힙 푸시한다. 코드 import sys import heapq n = int(sys.stdin.readline()) heap = [] # 배열 # 연산..

CodingTest/Baekjoon 2021.09.22

[baekjoon] 백준 1927번(파이썬): 최소 힙

문제 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 알고리즘 - 연산의 개수만큼 반복한다. - 연산에 대한 정보 x가 0이라면 배열에서 가장 작은 값을 출력한다. - 배열이 비어 있는데 가장 작은 값을 출력해야 하면 0을 출력한다. - x가 0이 아니라면 배열에 x를 힙 푸시한다. 코드 import sys import heapq n = int(sys.stdin.readline()) heap = [] # 배열 # 연산의 개수만큼 반복한다. for i in range(n): x = int(s..

CodingTest/Baekjoon 2021.09.21

[baekjoon] 백준 10816번(파이썬): 숫자 카드 2

문제 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 알고리즘 - collections 모듈에 Counter 클래스를 사용하여 문제를 수행한다. - 반복문을 통해 구해야 할 정수가 있는지 확인한다. - 구해야 할 정수가 있다면 정수의 개수를 구해야 할 카드 자리에 넣어준다. 코드 import sys from collections import Counter # collections 모듈에 Counter 클래스 사용 n = int(sys.stdin.readline()) n_card..

CodingTest/Baekjoon 2021.09.20

[baekjoon] 백준 2164번(파이썬): 카드2

문제 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 알고리즘 - deque() 함수를 통해 문제를 수행한다. - n장의 카드를 1부터 n까지 번호를 매겨준다. - 리스트의 크기가 1일때까지 반복하여 카드를 하나 버리고 첫 번째 카드를 맨 뒤로 옮겨준다. 코드 import sys from collections import deque n = int(sys.stdin.readline()) heap = deque() # n장의 카드를 1 부터 n 까지 번호르 매겨준다. for i in range(1, n + 1):..

CodingTest/Baekjoon 2021.09.19

[baekjoon] 백준 11866번(파이썬): 요세푸스 문제 0

문제 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 알고리즘 - n명의 사람을 다 제거할 때까지 반복한다. - 반복하면서 제거할 인덱스를 더해줘 제거할 인덱스의 위치를 바꿔준다. - 인덱스의 크기가 남은 큐에 길이보다 크다면 인덱스의 크기를 나눠 나머지로 바꾼다. - 큐에서 해당 인덱스를 제거하고 제거한 요소를 리스트에 추가한다. 코드 import sys n, k = map(int, sys.stdin.readline().split()) queue = [i for i in range(1, n + 1)] temp = [] index = 0 # 제거할 인덱스 while queue: # 제거할 인덱스..

CodingTest/Baekjoon 2021.09.18

[baekjoon] 백준 1966번(파이썬): 프린터 큐

문제 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 알고리즘 - 테스트 케이스만큼 반복하여 인쇄 횟수를 출력한다. - 문서의 중요도와 인쇄 순서를 heap 리스트에 추가한다. - 반복문을 통해 첫 번재 문서의 중요도가 제일 높은지 확인하여 문제를 수행한다. 코드 import sys t = int(sys.stdin.readline()) # 테스트 케이스만큼 반복 for _ in range(t): n, m = map(int, sys.stdin.readline().split()) k = list(map(int, sy..

CodingTest/Baekjoon 2021.09.17

[baekjoon] 백준 10773번(파이썬): 제로

문제 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 알고리즘 - 정수 개수만큼 반복하여 쓴 돈의 수를 입력받는다. - 잘못된 수를 불렀다면 스택에서 팝해준다. - 정확한 수를 불렀다면 스택에 쓴돈의 수를 추가한다. - 스택의 합을 출력한다. 코드 import sys k = int(sys.stdin.readline()) stack = [] # 정수 개수만큼 반복한다. for i in range(k): # 쓴 돈의 수를 입력 받는다. num = int(sys.stdin.readl..

CodingTest/Baekjoon 2021.09.16

[baekjoon] 백준 1918번(파이썬): 후위 표기식

문제 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 알고리즘 - 입력받은 문자를 반복문을 통해 확인한다. - 피연산자인지 연산자인지 확인한다. - 연산자라면 '*' 와 '/' 는 스택의 맨 뒤에 요소가 '*' 이거나 '/' 일때까지 반복하여 결과값에 더해준다. - 나머지 연산자는 스택의 마지막이 '(' 일때까지 반복하여 결과값에 더해준다, - 마지막에 스택 안에 있는 모든 요소를 팝하여 결과값에 더해준다. 코드 import sys s = list(map(str, sys.stdin.readline()..

CodingTest/Baekjoon 2021.09.16

[baekjoon] 백준 11656번(파이썬): 접미사 배열

문제 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 알고리즘 - 문자를 하나씩 제외하여 리스트에 추가한다. - 리스트 안에 있는 문자열을 오름차순으로 정렬한다. - 정렬된 문자열 리스트를 하나씩 출력한다. 코드 import sys s = list(map(str, sys.stdin.readline().strip())) suffix = [] # 문자를 하나씩 제외하여 리스트에 추가 for i in range(len(s)): suffix.append(s[i:]) suffix.sort() # 리스트에 있는 문자열을 오름차순으로 정렬 # 정렬된 문자열 리스트를 하나씩 출력 for i in suff..

CodingTest/Baekjoon 2021.09.14

[baekjoon] 백준 10824번(파이썬): 네 수

문제 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 알고리즘 - 문자열로 입력을 받고 a, b 와 c, d를 더하기를 통해 붙여준다. - 붙인 두 문자를 정수형으로 더해서 출력한다. 코드 import sys a, b, c, d = map(str, sys.stdin.readline().split()) left = a + b # a와 b 붙이기 right = c + d # c와 d 붙이기 # 붙인 수의 합 print(int(left) + int(right)) github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해결법. Co..

CodingTest/Baekjoon 2021.09.14