오늘의 알고리즘 문제는 Stack / Queue에 관련된 문제였다.주어진 s에 괄호가 여/닫이 다 되는지 판단하고 답을 내는 문제였고,풀이는 아래와 같다. https://school.programmers.co.kr/learn/courses/30/lessons/12909 내 풀이import Foundationfunc solution(_ s:String) -> Bool { var ans:Bool = false var tempArr: [String] = [] for bracket in s { if !tempArr.isEmpty && tempArr[tempArr.endIndex - 1] == "(" && bracket == ")" { tempArr.remove..
https://school.programmers.co.kr/learn/courses/30/lessons/81301 내 풀이import Foundationlet numDic: [String: Int] = [ "zero": 0, "one": 1, "two": 2, "three": 3, "four": 4, "five": 5, "six": 6, "seven": 7, "eight": 8, "nine": 9]func solution(_ s:String) -> Int { var tempArr: String = s var tempStrArr: [String] = [] var resultArr: [Int] = [] for i in te..
https://school.programmers.co.kr/learn/courses/30/lessons/132267 테스트 케이스는 통과하는데 제출시 우르르 실패로 떠서 뭐지(?) 싶었다.그런데 역시 내가 문제였고.. 문제를 잘 읽어봤어야 했다.. 처음 제출했던 답은 아래와 같다func solution(_ a:Int, _ b:Int, _ n:Int) -> Int { var currentCola: Int = n var result: Int = 0 while currentCola >= a { currentCola -= a result += 1 // 빈병을 반납하면 콜라 한병을 받는거로 구했음 currentCola += b } re..
https://school.programmers.co.kr/learn/courses/30/lessons/12950 내 풀이func solution(_ arr1: [[Int]], _ arr2: [[Int]]) -> [[Int]] { var result: [[Int]] = [] for i in 0.. 2차원 배열 문제는 처음이라 접근하는 방법에 어려움이 있었다. 두 배열의 길이는 항상 같음으로 arr1.count를 사용해 배열안에 배열을 생성 [ [ ] ]각 배열의 요소에 접근해서 각각 더해줘야하기 때문에 result[i번째]에 arr1[i번째][j번째] 요소 + arr2[i번째][j번째] 요소의 합 추가 ex) i가 0 // j가 0 인경우 arr1[0][0] ==> 1 arr2[0]..
https://leetcode.com/problems/valid-parentheses/description/ 주어진 문자열(s)가 유효한지 확인 모든 열려있는 괄호는 같은 타입의 괄호로 닫혀야 함 내 풀이 class Solution { func isValid(_ s: String) -> Bool { guard s.count > 1 else { return false } var stack = [Character]() for char in s { switch char { case "(", "{", "[": stack.append(char) case ")": if stack.last == "(" { stack.removeLast() } else { return false } case "}": if stack...
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ 일별로 주식 가격이 주어졌을 때, 최대 이익을 구하기 내 풀이 class Solution { func maxProfit(_ prices: [Int]) -> Int { guard prices.count > 1 else { return 0 } var result: [Int] = [] for price in prices { for j in 1.. 0 { var profit = prices[j] - price print(prices[j], "-", price, "=", prices[j] - price) result.append(profit) } } } return result.max() ?? 0 } ..
https://leetcode.com/problems/valid-palindrome/description/ 주어진 문장(s)을 소문자로 바꾼후, 영문/숫자가 아닌걸 제거하고, 주어진 문장과 거꾸로 읽어도 똑같다면 true를 리턴, 다르다면 false를 리턴 내 풀이 class Solution { func isPalindrome(_ s: String) -> Bool { let convertedStr = s .lowercased() .filter { $0.isNumber || $0.isLetter } let reversedStr = String(convertedStr.reversed()) return convertedStr == reversedStr ? true : false } } 소문자로 바꿔주는 메서드..
https://leetcode.com/problems/two-sum/ 정수의 배열로 이루어진 nums로 각각 더해서 target의 값과 같으면 해당 index들을 리턴 내 풀이 class Solution { func twoSum(_ nums: [Int], _ target: Int) -> [Int] { var result: [Int] = [] for (idx, num) in nums.enumerated() { for idx2 in (idx + 1) ..< nums.count { if num + nums[idx2] == target { return [idx, idx2] } } } return result } } Solution().twoSum([2, 7, 11, 15], 9) enumerated()를 이용해..
https://leetcode.com/problems/valid-anagram/ 내 풀이 class Solution { func isAnagram(_ s: String, _ t: String) -> Bool { var sortedS = s.sorted() var sortedT = t.sorted() return sortedS == sortedT ? true : false } } Solution().isAnagram("anagram", "nagaram") s, t를 정렬해서 두 string의 순서들을 똑같이 만듬. `==` (비교연산자)를 사용해 s, t를 비교하여 같으면 true를, 다르면 false를 리턴 다른사람의 풀이 class Solution { func isAnagram(_ s: String, ..
https://leetcode.com/problems/contains-duplicate/description/ 주어진 배열에서 중복되는 요소가 있으면 `true`를 리턴, 없다면 `false`를 리턴 문제 사진 내 풀이 class Solution { func containsDuplicate(_ nums: [Int]) -> Bool { let numbers = Set(nums) if nums.count != numbers.count { return true } else { return false } } } Solution().containsDuplicate([1,2,3,1,3]) - 새로운 배열 numbers에 Set을 사용해서 중복되는 요소들을 걸러냄 - 주어진 배열과 numbers 배열의 길이(coun..
- Total
- Today
- Yesterday
- Swift final
- ios
- Swift joined
- Swift 프로퍼티
- swift property
- removeLast()
- Swift 알고리즘
- swift protocol
- Swift RIBs
- Swift 내림차순
- Swift
- RIBs tutorial
- Swift Error Handling
- Swift ModernRIBs
- Swift joined()
- swift 고차함수
- 2023년 회고
- swift programmers
- Class
- iOS error
- Combine: Asynchronous Programming with Swift
- 원티드 프리온보딩
- RTCCameraVideoCapturer
- Swift inout
- CS 네트워크
- swift (programmers)
- Swift 프로그래머스
- Swift Leetcode
- Swift init
- swift reduce
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |