본문 바로가기

분류 전체보기

(268)
[알고리즘] LIS 최장 증가 부분 수열 파해치기!! with Swift Todo : LIS 최장 증가 부분 수열 파해치기 LIS개념을 마주한 순간.. LIS(Longest Increasing Subsequence)란? dp를 통해 LIS 길이를 구하는 방법 이분 탐색을 통해 LIS길이를 구하는 방법 이분탐색 또는 dp를 활용한 문제 LIS개념을 마주한 순간.. 관련 문제 = 14002: 가장 긴 증가하는 부분수열4 ( 포스트 ) dynamic programming문제를 한참 공부 했었을 때(지금도 공부중입니다.ㅏ..) 전깃줄 문제를 풀다 LIS라는 개념을 만나게 되었습니다. 당시에 전깃줄 문제를 풀 때 모든 경우의 수를 파악해 가며 완벽히 구현했다고 생각한 코드를 구현했을 때 문제를 풀 수 없었습니다. 그리고 제가 생각한 코드로는 도저히 해결 할 수 없는 반례들이 나타났습니..
[백준/Swift] 3273 : 두 수의 합 BOJ_3273.swift 3273 : 두 수의 합/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 3273 : 두 수의 합 / 문제 소개 서로다른!!! n개의 양의 정수로 이루어진 수열 중에서 ai + aj = x(문제에서 주어진 자연수 x)를 만족하는 (ai,aj)쌍의 수를 구하는게 문제이다. 풀이 과정 처음에 투 포인터 left, right 를 이용해..
[백준/Swift] 수들의 합2 : 2003 BOJ_2003.swift 2003 : 수들의 합2/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 2003 : 수들의 합2 / 문제 소개 N개의 수로 된 수열이 있는데 수열의 i번째 수 부터 j번째 수까지의 합이 M이 되는 경우를 구하는 문제이다. 풀이 과정 두 포인터 알고리즘을 활용해 문제를 풀었다. 쉽지 않은 문제다.. 이 문제는 두 용액과 비슷한 난이도 같은데,,..
[백준/Swift] 1806 : 부분합 문제 뿌수기!! + 2개 반례 BOJ_1806.swift 1806 : 부분 합/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N 6 -> 10 -> 15를 달성하고 right 가 maxIndex가 됬으므로 while문이 종료되어 left 탐색을 하지 못했습니다. 또한 이 경우 문제점이.. 최적의 값 2 4 5를 찾지 못하고 3 4 5를 답으로 측정했기 때문에 left는 ..
[백준/Swift] 2470 : 두 용액 문제 뿌수기!! BOJ_2470.swift 2470 : 두 용액/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 2470 : 두 용액 / 문제 소개 간단하게 문제를 소개하자면 연구소에는 많은 산성 용액과 알칼리성 용액을 보유하고 있는데 용액별로 특성값이 존재합니다. 산성 용액 특성값의 경우 1 ~ 1,000,000,000 알칼리성 용액 특성값의 경우 -1,000,000,000 ~ -1 로 존재..
[백준/Swift] 14719 : 빗물 문제 뿌수기!! ( 2개 반례 포함) BOJ_14719.swift 14719 : 빗물/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/14719 14719 : 빗물/ 문제 소개 물이 고일 수 있는 경우는 빈 블럭보다 높은 블럭이 양 옆에 혹은 떨어져서 존재해야 물은 고일 수 있다. 평평하거나 높이가 0인 경우 물은 고이지 않는다. 풀이 과정 주어진 2차원 세계에서 바닥은 항상 막혀있다. 빗물이 고이는 경우는 힌트 1과 힌트 2에 답이 있다. 첫번째, 둘러 쌓여 있는 겉 블록의 양 끝 높이가 같거나 오른쪽이 클 경우 이 경우 힌트의 동그라미 분홍색 칠과 같은 경우이다. 가장 왼쪽 블록과 가장 오른쪽 블록의 높이가 같거나 오른쪽 블록의 높이가 클때 왼쪽 블록을 기준으로 빗물이 고이는 경우를 구하는 것..
[백준/Swift] 12852 : 1로 만들기 2 BOJ_12852.swift 12852 : 1로 만들기 2/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 12852 : 1로 만들기 2 / 문제 소개 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오! 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 둘째 줄에는..
[Swift] pickerView component의 리스트 title이 "?" 형태?! textField를 누르면 picker뷰를 통해 등록된 계정을 보여주려고 pickerView를 사용했다. 계정 오른쪽에 textField에 picker뷰를 inputView로 등록했다. 기본적으로 구성한 코드이다. class viewController : UITableViewController ... { var accountList = [ "A@naver.com", "B@naver.com", "C@gmail.com", "D@gmail.com" ] override func viewDidLoad() { let picker = UIPickerView() picker.delegate = self } //MARK: - PickerViewDelegate //피커뷰 몇개의 컴포넌트로 구성될건가?! func numbe..