본문 바로가기

분류 전체보기

(268)
[백준/Swift] 5582: 공통 부분 문자열, LongestCommonSubsequence, LongestCommonSubstring차이 | PS일지 문제 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 간단한 문제 요약 두 문자열이 주어졌을 때 공통으로 가장 긴 부분 문자열의 길이를 출력하시오. 고려해야 할 사항 Longest Common Subsequence VS Longest Common Substring 의 개념을 알면 좋은 것 같습니다. 전자의 경우 공통으로 있는 문자열들의 가장 긴 수열을 의미합니다. 후자의 경우 공통으로 있는 연속된 문자열들 중 가장 긴 문자열을 의미합니다. 예를들어 문자열1: ABACD 문자열2: ABTCD LCSu..
[백준/Swift] 3745: 오름세. while문 무한 입력 EOF처리 방법 | PS일지 문제 3745번: 오름세 입력은 여러개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 주가를 관찰한 날의 수 N (N ≤ 100000)이 주어진다. 둘째 줄에는 관찰한 주가가 첫 날부터 순서대로 주어진다. www.acmicpc.net 간단한 문제 요약 n일동안 매일 주가를 적어 놓고 가장 긴 오름세를 찾으시오 고려해야 할 사항 둘째 줄에서부터 주가가 첫 날부터 순서대로 주어집니다. 이때 주가는 한 개 이상의 공백으로 구분되어 있습니다. 문제 풀이 이 문제는 LIS문제입니다. 하지만 종료조건이 주어지지 않습니다. EOF처리 방법을 알아야 합니다. EOF처리에 대해 처음으로 관심을 갖게 한 문제입니다. while let input = readLine() { ... } 기본적으로 Swift..
[백준/Swift] 14003: 가장 긴 증가하는 부분 수열 5 | PS일지 문제 14003번: 가장 긴 증가하는 부분 수열 5 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 간단한 문제 요약 수열 A가 주어졌을 때 가장 긴 증가하는 부분 수열을 구하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50}. 길이 4. 문제 풀이 이 문제는 2568: 전깃줄 - 2 문제와 같습니다. 전깃줄 - 2 PS일지 포스트에 LIS 개념과 역추적 개념을 잊지 않기 위해 썼습니다. 전깃줄 2 에서도 결국..
[백준/Swift] 2568: 전깃줄 - 2 문제 부수기!! + LIS 개념과 이분 탐색, 역 추적 개념 정리 | PS일지 문제 2568번: 전깃줄 - 2 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100,000 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결 www.acmicpc.net 간단한 문제 요약 두 전봇대 사이에 여러 개의 전깃줄이 있다. 이 전깃줄 등 교차하는 경우가 발생했다. 그래서 교차하지 않도록 몇 개의 전깃줄을 최소한으로 제거하려 할 때 없애야 하는 전깃줄의 A 전봇대에 연결되는 위치 번호를 오름차순으로 출력하시오. 고려해야 할 사항 답이 여러 개의 경우가 있을 수 있습니다. 그 중 하나를 출력해야 합니다. 전깃줄의 개수가 최악의 경우 100,000개입니다. 문제 풀이 이 문제는 LIS 알고리즘 + 역추적(정말 쉽습니..
[iOS/Swift5] AVPlayer's movie isn't showing issue. AVPlayer, AVPlayerLayer 간단한 사용법 AVPlayer는 로컬 mp3, mp4, HTTP live streaming, http url의 동영상을 재생하게 해줍니다. 현재 재생중인 동영상을 바꿀 때 replaceCurrentItem(with:) 함수를 사용하면 됩니다. 그러나 재생 시에 한 동영상만 재생이 가능하다는 사실. 여러 동영상을 추가했다면 AVQueuePlayer를 통해 AVPlayerItem들을 관리할 수 있습니다. Queue의 성격을 갖고 있어 AVPlayerItem 동영상에 대해 insert, remove 등의 연산이 가능합니다. AVPlayerViewController로 present. 화면 전환해서 player를 통해 동영상을 실행할 수 있지만, ContainerView ( UIView등의 타입)를 선언하고 그 안에 AVPla..
[백준/Swift] 14002: 가장 긴 증가하는 부분 수열4 파해치기 | PS일지. 문제 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 간단한 문제 요약 수열이 주어졌을 때 가장 긴 증가하는 부분 수열을 구하시오! 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 고려해야 할 사항 2차원 dp를 활용한 LIS는 단순 길이 정보를 dp에 저장합니다. 따라서 역추적을 통해 가장 큰..
[백준/Swift] 7579: 앱. 문제 뿌수기!! | PS일지 문제 7579번: 앱 입력은 3줄로 이루어져 있다. 첫 줄에는 정수 N과 M이 공백문자로 구분되어 주어지며, 둘째 줄과 셋째 줄에는 각각 N개의 정수가 공백문자로 구분되어 주어진다. 둘째 줄의 N개의 정수는 현재 활 www.acmicpc.net 간단한 문제 요약 스마트폰에서 화면은 작다. 보이는 화면에서 '실행중'인 앱은 한 개 이지만, 더 많은 앱이 '활성화' 되어있다. 활성화 된 앱은 system resource memory를 사용한다. 한 번이라도 실행됬던 앱들을 종료하지 않는 이상, 이미 활성화 된 앱으로 분류된다. 새로운 앱을 실행시켜야 하는데 이미 활성화 된 앱은 각각의 메모리를 점유하고 있다. 활성화 상태의 앱을 비활성화 시키면 특정 앱이 소유하고 있던 메모리가 반환되어 사용할 수 있다. 하..
[백준/Swift] 3067: Coins | PS일지 문제 3067번: Coins 우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 모든 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어 30원을 만들기 위해 www.acmicpc.net 간단한 문제 요약 동전의 종류(1원, 5원, 10원, 50원 ...)가 주어질 때 주어진 금액을 만드는 모든 방법을 세는 프로그램을 작성하시오! 문제 풀이 1,2,3원으로 6원 만드는 모든 경우의 수 구하는 방법 주어진 동전: 1,2,3 6원을 만드는 모든 방법을 구하는 방법을 어떻게 구할 수 있을까요? 1 + 1 + 1 + 3 1 + 2 + 3 3 + 3 ... 6원보다 작은 3원 먼저 만들기 우선 문제를 쪼개 6이 아닌 3을 구하는..