목록분류 전체보기 (392)
Hanbit the Developer
www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net import sys input = sys.stdin.readline def getNextPos(x, y): global isVisited RET = [] dx = [-1, -2, -2, -1, 1, 2, 2, 1] dy = [-2, -1, 1, 2, 2, 1, -1, -2] for i in range(8): curX, curY = x+dx[i], y+dy[i] if 0
import sys input = sys.stdin.readline T = int(input()) for _ in range(T): K = int(input()) heap = [] nums = [0]+list(map(int, input().split())) sums = [0]*(K+1) for i in range(1, K+1): sums[i] = sums[i-1]+nums[i] dp = [[0]*(K+1) for _ in range(K+1)] for i in range(2, K+1): # 길이 for j in range(1, K+2-i): # 시작지점..K-1~0 dp[j][j+i-1] = min([dp[j][j+k]+dp[j+k+1][j+i-1] for k in range(i-1)]) + (sums[j..
import sys input = sys.stdin.readline N, K = map(int, input().split()) coins = [] for _ in range(N): coins.append(int(input())) RET = 0 curMoney = K while curMoney > 0: curMaxCoin = coins.pop() RET += curMoney // curMaxCoin curMoney = curMoney % curMaxCoin print(RET) 최댓값을 꺼내서 RET, curMoney에 각각 연산해준다. 여기서 RET의 연산은 curMoney보다 curMaxCoin이 크면 0을 반환할 것이고, curMoney는 그대로일 것이다. 따라서 curMaxCoin이 curMoney ..
2차 시험은 알고리즘 3문제, SQL 1문제, Web 1문제로, 총 5문제였다. 알고리즘 3문제를 요약하자면, 모두 탐색 문제였다. 문제에 solved.ac(백준) 기준 난이도를 부여하자면, 각각 골드4, 골드3, 골드2 정도였다. SQL 문제는, 테이블 3개를 참조하는 문제여서 개인적으론 당황스러운 문제였지만, 크게 어려움은 없었다. Web 문제는 javascript 문제였고, onClick()에 함수를 달아서 조건에 따라 css style을 변경하는 문제였고, 요구사항이 많았을 뿐 쉬운 난이도였다. 나는 다 풀고 나서 20분 정도가 남아 반례 처리를 하였다. 느낀 점으로는 저번 시험에 비해 각 문제의 난이도는 약간 높아졌으나, 문제 수가 적어서 체감 난이도가 너무나도 줄었다. *추가 - 21.03.1..
www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net import sys input = sys.stdin.readline nums = list(map(int, input().strip())) nums.sort(reverse=True) for num in nums: print(num, end="")
www.acmicpc.net/problem/2468 import sys sys.setrecursionlimit(20000) input = sys.stdin.readline N = int(input()) Map = [] for _ in range(N): Map.append(list(map(int, input().split()))) stateMap = None def getSafeZone(h): global stateMap stateMap = [[0]*N for _ in range(N)] cntSafeZone = 0 for i in range(N): for j in range(N): if Map[i][j] > h and stateMap[i][j] == 0: cntSafeZone += 1 dfs(i, j, h..
www.acmicpc.net/problem/1516 import sys input = sys.stdin.readline N = int(input()) buildTimes = [-1 for _ in range(N+1)] prevBuild = {i: [] for i in range(N+1)} realBuildTimes = [-1 for _ in range(N+1)] def getBuildTime(index): global realBuildTimes RET = buildTimes[index] for cur in prevBuild[index]: if realBuildTimes[cur] != -1: RET = max(RET, buildTimes[index]+realBuildTimes[cur]) else: RET ..
import heapq import sys input = sys.stdin.readline N = int(input()) S, T = 0, 1 # define times = [] for _ in range(N): times.append(list(map(int, input().split()))) times.sort(key=lambda x: x[0]) queue = [] heapq.heappush(queue, times[0][T]) for i in range(1, N): if times[i][S] >= queue[0]: heapq.heappop(queue) heapq.heappush(queue, times[i][T]) else: heapq.heappush(queue, times[i][T]) print(len..
www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net while True: strCur = input() if strCur == ".": break isBalanced = True stack = [-1] for c in strCur: if c in '([': stack.append(c) elif c == ')': if stack[-1] == ')': del stack[-1] else: isBalanced = False break elif c == '..