자료구조 3

[백준][Python] 10828 스택

📚 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 내 풀이 import sys N = int(sys.stdin.readline()) stack = [] for _ in range(N): command = list(sys.stdin.readline().split()) if command[0] == 'push': stack.append(command[1]) elif command[0] == 'pop': if len(stack) ..

코딩테스트 2024.03.27

[백준][Python] 9935 문자열 폭발

💣 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 정답 코드 string = input() explosion = input() ans = [] last_char = explosion[-1] for i in string: ans.append(i) if i == last_char and ''.join(ans[-len(explosion):]) == explosion: del ans[-len(explosion):] if len(ans)..

코딩테스트 2024.03.24

[백준][Python] 2161 카드1

🃏 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 내 풀이 from collections import deque N = int(input()) cards = deque() result = [] for i in range(1, N+1): cards.append(i) # 카드가 한 장 남을 때까지 반복 while len(cards) > 1: result.append(cards.popleft()) # 제일 위에 있는 카드를 버린다 cards.app..

코딩테스트 2024.03.01