최장 증가 수열 (LIS, Longest Increasing Subsequence)
최장 증가 수열(LIS)이란? 주어진 수열에서 순서대로 정렬된 가장 긴 증가하는 부분 수열 예시 수열: [3, 10, 2, 1, 20] LIS: [3, 10, 20] 길이: 3 수열: [50, 3, 10, 7, 40, 80] LIS: [3, 7, 40, 80] 길이: 4 LIS 문제는 동적 계획법(Dynamic Programming) 과 이분 ...
최장 증가 수열(LIS)이란? 주어진 수열에서 순서대로 정렬된 가장 긴 증가하는 부분 수열 예시 수열: [3, 10, 2, 1, 20] LIS: [3, 10, 20] 길이: 3 수열: [50, 3, 10, 7, 40, 80] LIS: [3, 7, 40, 80] 길이: 4 LIS 문제는 동적 계획법(Dynamic Programming) 과 이분 ...
문제 링크 문제 링크 성능 요약 메모리: 42004 KB, 시간: 40 ms 문제 설명 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다...
문제 링크 문제 링크 성능 요약 메모리: 2028 KB, 시간: 4 ms 문제 설명 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 ...
문제 링크 문제 링크 성능 요약 메모리: 2024 KB, 시간: 0 ms 문제 설명 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나...
문제 링크 문제 링크 성능 요약 메모리: 6524 KB, 시간: 76 ms 문제 설명 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 ...
문제 링크 문제 링크 성능 요약 메모리: 2156 KB, 시간: 0 ms 문제 설명 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개...
문제 링크 문제 링크 성능 요약 메모리: 2028 KB, 시간: 0 ms 문제 설명 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하...
문제 링크 문제 링크 성능 요약 메모리: 2288 KB, 시간: 3508 ms 문제 설명 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 저장된 n을 다음과 같이 변환한다. n의 네 ...
문제 링크 문제 링크 성능 요약 메모리: 57856 KB, 시간: 1176 ms 문제 설명 이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 ...
문제 링크 문제 링크 성능 요약 메모리: 7840 KB, 시간: 92 ms 문제 설명 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 ...