BEAKJOON

import sys input = sys.stdin.readline manage = {} for _ in range(int(input())): employee, status = input().rstrip().split() if employee in manage and status == 'leave': del manage[employee] else: manage[employee] = 1 print(*sorted(manage.keys(), reverse=True), sep='\n') 해시맵, 파이썬의 딕셔너리로 풀면 간단하게 해결되는 문제다. 답을 출력할 때 포인터와 sep 파라미터를 이용하여 간단하게 출력했다. 시간 복잡도 입력받은 n만큼 로그 기록을 살펴봐야함: for문 => O(n)
import sys from collections import deque input = sys.stdin.readline MAX = 100000 + 1 n, k = map(int, input().split()) visited = [-1] * MAX # [위치][시간] 으로 하려고 했으나 메모리 초과로 [위치]=시간으로 바꿈(물론 dist 배열을 따로 둬도 됨) def bfs(): q = deque() q.append(n) visited[n] = 0 while q: loc = q.popleft() # 동생 위치를 찾음 if loc == k: return visited[loc] # 순간이동 if loc * 2 < MAX and visited[loc*2] == -1: visited[loc*2] = visite..
import sys input = sys.stdin.readline r, c = map(int, input().split()) yard = [list(input().rstrip()) for _ in range(r)] visited = [[False for _ in range(c)] for _ in range(r)] # . 빈필드 / # 울타리 / o 양 / v 늑대 def bfs(a, b): stack = [(a,b)] sheep, wolf = 0, 0 while stack: x, y = stack.pop() visited[x][y] = True # 양, 늑대 개수 세기 if yard[x][y] == 'o': sheep += 1 elif yard[x][y] == 'v': wolf += 1 for dx, ..
import sys input = sys.stdin.readline n = int(input()) result = [] stack = [] i = 1 for _ in range(n): target = int(input()) if not stack or stack[-1] < target: for num in range(i, target + 1): stack.append(num) result.append('+') i = target + 1 if stack[-1] == target: stack.pop() result.append('-') else: break if stack: print('NO') else: print(*result, sep='\n') 문제에서 하라는 대로 따라가면서 풀면 된다. 그리고 어떤 ..
빵빵0
'BEAKJOON' 태그의 글 목록