본문 바로가기

분류 전체보기

(273)
[백준/Swift] 14728: 벼락치기 | PS일지 문제 14728번: 벼락치기 ChAOS(Chung-ang Algorithm Organization and Study) 회장이 되어 일이 많아진 준석이는 시험기간에도 일 때문에 공부를 하지 못하다가 시험 전 날이 되어버리고 말았다. 다행히도 친절하신 교수님께서 아래와 www.acmicpc.net 간단한 문제 요약 일정 시간 이상을 들이면 해당 단원의 시험을 맞을 수 있다고 가정했을 때(대박,,일정 시간 투자만 하면 된다니) 시험의 단원 개수와 시험까지 공부할 수 있는 총 시간이 주어졌을 때, 특정 단원을 공부할 수 있는 시간과 그 단원을 공부했을 때 배점이 최대가 되는 경우를 구하시오! 문제 풀이 시험까지 공부할 수 있는 총 시간이 10000 밖에 안되서 2차원 dp로 풀었습니다. 주어진 최대 시간까지!!..
[Swift 5.5] actor, actor isolation, cross-actor reference 개념 완벽 뿌수기 | No2. Actor 안녕하세요. 저번 포스트에선 actor의 개념과 thread-safe, actor's serial executor에 대해 공부했던 개념을 정리했습니다. 이번 포스트는 actor와 isolated state, Sendable(관련 개념 정리)을 준수하며 actor를 사용하는 방법, actor isolated state, cross-actor reference, mainActor, nonisolated를 공부했던 내용을 정리하려 합니다. 지난번 actor에 대한 개념만 다시 간략하게 정리하겠습니다. 1. Actor concept Concurrent domain간 shared mutable state를 access할 때 동시성 문제가 발생할 수 있습니다. multi thread에서 mutable 값이 담긴 메..
[Swift 5.5] actor 개념 뿌수기!! +_+ #Concurrency, thread-safe, actor's serial executor | No1. Actor 안녕하세요. 이번 포스트는 Swift 5.5 concurrency api 중 actor에 대해서 공부한 개념을 정리하려고 합니다. Actor를 공부하기 전에 같이 공부하면 좋을 @Sendable, Sendable protocol에 관한 글 또한 정리 했습니다. 참고해주시면 감사합니다. 시작하기에 앞서 thread-safe라는 개념에 대해 알고 가면 좋습니다. 1. What does "thread-safe" mean? Main thread에서 호출하여 수행되나 동시에 background thread에서 호출되어 수행되나 같은 결과를, 예상되는 결과를 갖는 경우를 의미합니다. 여러 thread에서 공유 자원(object, method etc..)을 같은 시간 대에 동시에(concurrently) 수행해야 하..
[Swift 5.5] Sendable. Concurrent problem 해결 + Sendable개념 파해치기 with Actor 요즘 Concurrency를 계속해서 공부하고 있습니다. GCD부터 Swift 5.5 modern concurrency까지. GCD를 알고 있지만 modern concurrency async/await로 인스타그램 앱 클론 개발을 해왔었습니다. 낯선 개념은 아니었으나 WWDC 영상 말고 책으로 다시 공부해보고 싶었고 새롭게 알게 된 개념들을 정리 하려고 합니다. Modern concurrency 개념 중 가장 많이 사용한 개념은 async/await이 메인이였습니다. concurrent problem 관련해서 actor는 정말 중요한 개념인 것 같습니다. actor를 사용하기 위해선, Sendable 프로토콜을 준수하는 이유 또한 알아야 합니다. 1. What is modern concurrency an..
[백준/Swift] 9252: LCS2 | PS일지 문제 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 간단한 문제 요약 LCS(Longest Common Subsequence). 최장 공통 부분 수열은 두 문자열 간 가장 긴 공통된 문자열을 찾는 것이다. 문제 풀이 문자열1: ABTD 문자열2: ABCD 두 문자열이 있다면 LCSubsequence는 ABD입니다. 하지만 LCSubstring의 경우 AB(연속적인 부분 문자열)입니다. Longest Common Substring의 경우 (관련 문제 포스트가 있..
[백준/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 에서도 결국..