본문 바로가기

# Foundation

(88)
# Foundation/백준풀이 [LIS] 백준 14002 :: 가장 긴 증가하는 부분 수열 4 가장 긴 증가하는 부분 수열 4 성공스페셜 저지시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB2601102777541.600%문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.둘째 줄에는 가장 긴 증가하는 부분 수열을 출력한다.예제 입력 1 복사6 ..

2019. 7. 9. 08:47

# Foundation/백준풀이 [LIS] 백준 12738 :: 가장 긴 증가하는 부분 수열 3 가장 긴 증가하는 부분 수열 3 성공시간 제한메모리 제한제출정답맞은 사람정답 비율3 초512 MB1867108287764.015%문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.예제 입력 1 복사6 10 20 10 3..

2019. 7. 9. 08:35

# Foundation/백준풀이 [LIS] 백준 12015 :: 가장 긴 증가하는 부분 수열 2 가장 긴 증가하는 부분 수열 2 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초512 MB43131808123245.145%문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.예제 입력 1 복사6 10 20 10 30 20 50 예제 출력 ..

2019. 7. 9. 08:30

# Foundation/백준풀이 [LIS] 백준 11053 :: 가장 긴 증가하는 부분 수열 가장 긴 증가하는 부분 수열 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB3058911338774537.075%문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.예제 입력 1 복사6 10 20 10 30 20 50 예제 출력 1 복사4 문제 풀..

2019. 7. 9. 08:26

# Foundation/알고리즘 가장 긴 공통 부분 수열 (LCS - Longest Common Subsequence) 알고리즘 LCS의 정의가장 긴 공통 부분 문자열 (Longest Common Substring)두 문자열의 가장 긴 부분 문자열이다.문자열이란 끊어지지 않는 문자들의 연속이다. 가장 긴 공통 부분 수열 (Longest Common Sequence)두 문자열의 가장 긴 부분 수열이다.부분 수열이란 원래 수열에서 임의의 원소를 0개 이상 지워서 만든 수열이다. 이 포스팅에서는 가장 긴 공통 부분 수열을 다루며, 다루어지는 주제는 다음과 같다.N^2 풀이경로 추적N*logN 풀이 - Using LIS문자열이 N개일 때메모리 최적화 N^2 풀이동적 계획법을 사용하여 문제를 풀어보자.작은 문제부터 시작하여 큰 문제를 해결하는 것 이다! int solve (int i, int j) // A[0...i]와 B[0...j]에서..

2019. 7. 2. 15:07

# Foundation/알고리즘 가장 긴 공통 부분 문자열 (LCS - Longest Common Substring) 알고리즘 LCS의 정의가장 긴 공통 부분 문자열 (Longest Common Substring)두 문자열의 가장 긴 부분 문자열이다.문자열이란 끊어지지 않는 문자들의 연속이다. 가장 긴 공통 부분 수열 (Longest Common Sequence)두 문자열의 가장 긴 부분 수열이다.부분 수열이란 원래 수열에서 임의의 원소를 0개 이상 지워서 만든 수열이다. 이 포스팅에서는 가장 긴 공통 부분 문자열을 다루며, 다루어지는 주제는 다음과 같다.N^2 풀이경로 추적 N^2 풀이동적 계획법을 사용하여 문제를 풀어보자.작은 문제부터 시작하여 큰 문제를 해결하는 것 이다! int solve(int i, int j) // A[0...i]와 B[0...j]에서, A[i]와 B[j]를 공통된 끝으로 갖는 최대 부분 문자열의 길이..

2019. 7. 1. 12:32

# Foundation/알고리즘 가장 긴 증가하는 부분 수열 (LIS - Longest Increasing Subsequence) 알고리즘 가장 긴 증가하는 부분 수열 (LIS)최장 증가 부분 수열 문제란, 주어진 수열에서 오름차순으로 되어있는 가장 긴 부분수열을 찾는 문제이다. 이 때, 부분수열은 반드시 연속적일 필요는 없으며,필요하다면 중간을 건너뛰는 것도 가능하다. 예를 들어, 수열 A = {10, 20, 60, 50, 30, 40, 20} 에서,가장 긴 증가하는 부분 수열은 A = {10, 20, 60, 50, 30, 40, 20} 이고, 길이는 4 이다. 대표적인 동적 계획법(Dynamic Programming) 문제이며,이 게시글에서 설명할 주제는 다음과 같다.LIS의 특성N^2 문제풀이N*logN 문제풀이경로 역추적 (백트래킹) LIS의 특성어떤 수열에 대해 적절히 n개를 삭제하여 최대한 긴 증가 부분 수열을 만드는 것이므로,이..

2019. 6. 30. 16:25

# Foundation/백준풀이 [이분탐색] 백준 10816 :: 숫자 카드 2 숫자 카드 2 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB98942933201733.723%문제숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다.셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정..

2019. 6. 25. 17:47