문제풀이/자료구조

https://www.acmicpc.net/problem/7785 코드n = int(input())exist = set()for _ in range(n): name, io = input().split() if io == "enter": exist.add(name) else: exist.remove(name)e_lst = sorted(list(exist))for i in range(len(e_lst)-1, -1, -1): print(e_lst[i])
https://www.acmicpc.net/problem/2493 코드n = int(input())towers = list(map(int, input().split()))stack = []ans = [0]*nfor i in range(n): while stack and stack[-1][0]  for문을 i까지 돌았을 때 stack에는 towers[i-1]와 그보다 큰 타워들만 저장되어 있다. i번째 타워는 스택에서 자신보다 작은 타워는 다 pop하고 스택의 top, 즉 자신보다 큰 타워의 인덱스+1을 ans[i]에 저장하면 된다. 문제의 테스트케이스로 예를 들자면,위의 예시에서는 높이가 4인 5번째 타워까지 왔을 때 스택에 저장된 타워는 바로 이전 타워인 4번과 그보다 더 큰 타워인 2번이다.그러..
https://www.acmicpc.net/problem/1269 코드a_num, b_num = map(int, input().split())a = set(map(int, input().split()))b = set(map(int, input().split()))print(len(a-b)+len(b-a)) 파이썬은 집합 자료형과 관련 연산이 정의되어 있어서 이 문제를 쉽게 풀 수 있었다. a와 b를 set()을 이용하여 집합으로 만들고, '-' 연산을 이용하여 A-B와 B-A 차집합을 구한 뒤 두 차집합의 길이를 더해주면 된다
https://www.acmicpc.net/problem/1021 코드from collections import dequen, m = map(int, input().split())pop_nums = list(map(int, input().split())) # 뽑아내려고 하는 수의 위치arr = deque([i for i in range(1, n+1)]) # 가장 처음 큐에서의 위치를 표시ans = 0for i in range(m): for j in range(len(arr)): # 뽑으려는 원소의 현재 위치 찾기 if arr[j] == pop_nums[i]: idx = j break if idx  뽑으려는 수의 위치를 입력으로 주기 때..
29813번: 최애의 팀원 2학년이 된 김한양은 한양대학교의 3대 관문 중 하나인 전문학술영어를 수강하게 됐다. 그런데, 갑자기 올해부터는 전학영이 2인1조 팀플로 진행된다는 공지가 떴다. 팀 구성은 자유이지만, 7수 www.acmicpc.net 코드 from collections import deque n = int(input()) students = deque([list(input().split()) for _ in range(n)]) while len(students) > 1: init, num = students.popleft() for _ in range(int(num)-1): students.append(students.popleft()) students.popleft() print(stude..
딜레이레이
'문제풀이/자료구조' 카테고리의 글 목록