일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- RGB거리
- dfs
- 컬럼비아대학교
- 백준
- 뉴욕양키스직관
- 시티바이크
- 미국여행
- 단어변환
- 뉴욕현대미술관
- JWT
- 현대오토에버
- 플랫아이언
- 덤보
- 에어프레미아
- 코딩테스트
- 그랜드센트럴터미널
- 자료구조
- 현대오토에버 1차면접
- 플랫아이언빌딩
- bfs
- 취준
- 뉴욕
- 프로그래머스
- 뉴욕여행
- 슬라이딩 윈도우
- 파이썬
- 알고리즘
- 록펠러센터
- 현대오토에버 코딩테스트
- 다이나믹프로그래밍
- Today
- Total
목록코딩테스트 (7)
기록용
import sys from queue import PriorityQueue input = sys.stdin.readline n = int(input()) q = PriorityQueue() for i in range(n): num = int(input()) tmp = [abs(num), num] # 절댓값이랑 원래값 같이 저장 if num == 0: if q.empty(): print(0) else: print(q.get()[1]) else: q.put(tmp) 배열 내 절댓값이 가장 작은 값 출력하는 문제 우선순위 큐를 사용하면 매우 간단히 풀 수 있는 문제
import sys from collections import deque input = sys.stdin.readline N, L = map(int,input().split()) arr = list(map(int,input().split())) D = [] q = deque([]) for i in range(N): # 덱이 비어있지 않고 덱의 맨 뒤가 추가하려는 원소보다 크면 제거 (덱을 오름차순으로 유지하기 위함) while q and q[-1][0] > arr[i]: q.pop() q.append([arr[i], i]) # 덱의 맨 앞 원소의 인덱스가 슬라이딩 윈도우를 벗어났으면 제거 if q[-1][1] - q[0][1] == L: q.popleft() D.append(q[0][0]) # 덱의 맨 ..
import sys from collections import deque input = sys.stdin.readline T = int(input()) for i in range(T): command = [s for s in input()] # 명령어 command.pop() # 개행 제거 n = int(input()) num = eval(input()) arr = deque(num) flag = 0 reverseCnt = 0 # 뒤집기 갯수 세는 용도 for c in command: if c == 'R': reverseCnt += 1 elif c == 'D': if len(arr) == 0: print("error") flag = 1 break else: if reverseCnt % 2 == 0: # ..
# N^2풀이에서 최적화 방법을 떠올리지 못해 정답 구글링함 import sys input = sys.stdin.readline n = int(input()) arr = [] stk = [] cnt = 0 for i in range(n): arr.append(int(input())) for b in arr: while stk and stk[-1]

문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. DP 문제이다. 오래전에 풀었던 문제같은데 다시 풀어봤다. n = int(input()) p = [] for i in range(n): p.append(list(map(int, input().split()))) fo..
레벨 3짜리 문제 def solution(begin, target, words): answer = float('inf') # 초기화: 무한대로 설정 visited = [] if target not in words: return 0 def dfs(s, ans): nonlocal answer visited.append(s) if s == target: answer = min(answer, ans) return ans for word in words: cnt = 0 # 알파벳 검사 for i in range(len(word)): if s[i] == word[i]: cnt += 1 # 알파벳이 하나만 바뀌었다면 if cnt == len(word) - 1 and word not in visited: dfs(wor..
레벨2짜리 문제 from collections import deque def solution(maps): answer = 0 n = len(maps) m = len(maps[0]) visited = [[0]*m for _ in range(n)] di = [-1,1,0,0] dj = [0,0,-1,1] def bfs(i,j): q = deque() q.append([i,j]) visited[i][j] = 1 while q: cur_i, cur_j = q.popleft() if cur_i == n-1 and cur_j == m-1: break for k in range(4): new_i = cur_i + di[k] new_j = cur_j + dj[k] if -1 < new_i < n and -1 < new..