Search in Rotated Sorted Array
·
PS/LeetCode
문제https://leetcode.com/problems/search-in-rotated-sorted-array/description/입력1 결과ans: Int = target이 위치한 인덱스, 먄약 없다면 -1해석이전 문제와 비슷한 이분탐색 문제지만 오름차순의 배열이 회전되어 있어 한번 더 조건을 걸어줘야한다. 그 조건은 이분탐색의 필수적인 조건인 정렬 여부, 즉 mid를 중심으로 정렬이 올바르게 되어있는 구간인가 아닌가를  판별 또한 mid를 통해 찾을 것이기 때문에, while문의 조건이 가 아닌 된다.코드class Solution { func search(_ nums: [Int], _ target: Int) -> Int { let n = nums.count var ..
Find Minimum in Rotated Sorted Array
·
PS/LeetCode
문제https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/입력n == nums.length1 결과ans: Int = 배열의 최솟값해석정렬이 됐지만 회전까지 들어가 있어 문제의 본질을 파악하는데 함정을 파뒀다.하지만 시간 복잡도 제약이 O(logn)인 것을 보고 이분 탐색이라는 것을 눈치 챌 수 있었다. mid를 기준으로 right 값이 큰지 작은 지를 판단하여크다면 오른쪽 부분은 버려주는 형식으로 진행코드class Solution { func findMin(_ nums: [Int]) -> Int { let n = nums.count if n == 1{ return n..
Maximum Product Subarray
·
PS/LeetCode
문제https://leetcode.com/problems/maximum-product-subarray/description/입력1 결과ans: Int = 곱 부분 배열의 최댓값해석이전 maxSubarray는 단순 합이라, 흐름이 하나였지만곱은 말 그대로 음수와 양수에 따른 흐름이 2개이므로 변수가 하나 더 필요했다.그래서 음수를 고려한 최대 음수 변수와, 최대 양수 변수를 계속 가져가며 반복마다 갱신한다.코드class Solution { func maxProduct(_ nums: [Int]) -> Int { let n = nums.count if n == 1 { return nums[0] } var minProduct = nums..
패키지 만들기
·
iOS
👋 들어가기 전나만의 오픈소스를 만들어 다른 사람에게 도움이 될만한 경험을 제공하는게 꿈이었다.현재 프로젝트를 하며 작지만 꽤나 귀찮은 불편함을 느꼈는데 이 아이디어를 나의 첫 오픈 소스 패키지로 활용하면 재밌겠다라는 생각이 들었다. 이번 시간에는 패키지를 만들며 겪는 과정과 어려움을 정리해보려한다. 드가자 ~!✊패키지 생성하기패키지 생성은 생각보다 어렵지 않았다.Xcode -> File -> Packag를 순서대로 누르자. 이후 Library를 선택 후 Test 파일 여부와 Packag이름을 써주면.. 짜잔 패키지 만들기 성공!☝️구성말했던 것 처럼 나의 첫 패키지는 굉장히 간단하기 때문에패키지를 만들 때 거치는 과정이 굉장히 간단해서 구성을 살펴보는건 공식 패키지를 보고 배워보자. 우리가 살펴볼 공..
Maximum Subarray
·
PS/LeetCode
문제https://leetcode.com/problems/maximum-subarray/description/입력1 결과ans: Int = 가장 큰 부분수열의 합해석누적합이 현재 값보다 작으면, 이전 누적합을 버리고 그렇지 않으면 계속 누적한다.이 때 누적할 때마다 이전의 최대값과 계속 비교해서 저장한다.코드class Solution { func maxSubArray(_ nums: [Int]) -> Int { let len = nums.count var currentMax = nums[0] // 누적합 var ans = nums[0] // 최종 결과 for i in 1..
Product of Array Except Self
·
PS/LeetCode
문제https://leetcode.com/problems/product-of-array-except-self/description/입력2 결과ans: [Int] = 자신을 제외한 곱 배열해석첫 반복문에서 모든 값을 순회하며 0 개수를 count와 동시에 0을 제외환 모든 곱의 결과를 계산 실질적인 계산일 때 2가지 분기로 구분 1) 현재 값이 0일 때- 다른 0이 존재하면 무조건 0, 그렇지 않으면 total 2) 현재 값이 0이 아닐 때- 0이 한번이라도 존재하면 0, 아니면 total / 현재 값  코드class Solution { func productExceptSelf(_ nums: [Int]) -> [Int] { var zeroCount: Int = 0 let to..