분류 전체보기 249

Swift 고차함수 Map, Filter, Reduce

대표적인 고차함수로는 map, filter, reduce가 있다. 고차함수는 "다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수"이다. MAP map은 데이터를 변형하고자 할 때 사용합니다. 기존 데이터를 변형하여 새로운 컨테이너를 만드는데, 기존 데이터는 변형되지 않습니다. 특히 map은 기존의 for-in 구문과 큰 차이가 없지만, map 사용시 다음과 같은 이점이 있습니다. 1. 코드의 간결성 2. 재사용 용이 3. 컴파일러 최적화 성능 좋음 map의 형태: array.map(Transform: T, throws -> T) for - in 구문과 비교해 보겠다. for - in: let array = [1, 2, 3, 4, 5] var xarray = [int]() for n i..

swift 2022.02.05

Leetcode 2114 풀이(파이썬, 스위프트)

단어의 개수가 가장 많은 인덱스를 고르는 문제이다 for문 연습하기 좋은 문제 스위프트 class Solution { func mostWordsFound(_ sentences: [String]) -> Int { var x = 0 for i in sentences{ x = max(x, numberOfWords(i)) } return x } func numberOfWords(_ s: String) -> Int { var w = 1 for i in s where i == " "{ w+=1 } return w } } 파이썬 class Solution: def mostWordsFound(self, sentences: List[str]) -> int: x=0 for i in range(len(sentences)):..

리트코드 풀이 2022.02.04

Leetcode 2011 풀이(파이썬, 스위프트)

++가 들어있으면 a라는 변수를 만들어서 +=1 해주고 아니면 -=1 해주는 단순한 문제 스위프트: class Solution { func finalValueAfterOperations(_ operations: [String]) -> Int { var a = 0 for i in operations{ if i.contains("++"){ a+=1 } else{ a-=1 } } return a } } 파이썬: class Solution: def finalValueAfterOperations(self, operations: List[str]) -> int: x=0 for i in range(len(operations)): if "++" in operations[i]: x+=1 else: x-=1 return x

리트코드 풀이 2022.02.04

Leetcode 1480 풀이(파이썬, 스위프트)

어떤 인덱스에 대하여 0부터 그 인덱스까지의 모든 배열인덱스의 값들의 합을 인덱스에 저장하는 것이다. 스위프트 class Solution { func runningSum(_ nums: [Int]) -> [Int] { var n=nums for i in 0...(n.count-2){ n[i+1] = n[i]+n[i+1] } return n } } 파이썬 class Solution: def runningSum(self, nums: List[int]) -> List[int]: for i in range(len(nums)): if i ==0: continue nums[i]=nums[i]+ nums[i-1] return nums

리트코드 풀이 2022.02.03

스위프트 배열과 enumerated()

스위프트 배열은 어떻게 선언 할까? let emptyArray: [Int] = [] let emptyArray2 = Array() let emptyArray3 = [Int]() 이렇게 3가지가 가능하다. 빈배열을 만들때는 반드시 Type을 명시하도록 하자. 크기가 정해진 배열 2가지로 선언이 가능하다. let zeroArray1 = [Int](repeating: 0, count: 10) // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] let zeroArray2 = Array(repeating: 0, count: 10) // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 1~12까지 숫자가 든 배열 let numbers: [Int] = Array(1...12) 배열에 들어있는 값의 개..

swift 2022.02.03

리트코드 1119 풀이(파이썬, 스위프트)

파이썬으로는 그냥 전부다 탐색하면서 해당되는 vowels를 배열에 담고 담긴 애들을 주어진 s에서 지워주면 되는데 스위프트는 removeAll이라는 새로운 메소드를 써서 까다롭지만 배울게 많았다. (contains랑 $0도) 스위프트 코드 class Solution { func removeVowels(_ s: String) -> String { var a = s let vowels : Set = ["a", "e", "i", "o", "u"] a.removeAll(where: {vowels.contains($0)}) return a } } 파이썬 코드 class Solution: def removeVowels(self, s: str) -> str: arr=[] for i in range(len(s)): i..

리트코드 풀이 2022.02.03

Leetcode 1929 풀이(파이썬, 스위프트)

단순히 배열을 두배로 늘려주는 문제. 지금보니 젤 쉬운문제.. 파이썬 class Solution: def getConcatenation(self, nums: List[int]) -> List[int]: return nums+nums #nums*2 스위프트 class Solution { func getConcatenation(_ nums: [Int]) -> [Int] { var a = nums //let으로 선언된 nums는 수정불가 하기 때문에 a라는 배열에 담음 return a+a //a*2는 스위프트에서 지원 안함 } }

리트코드 풀이 2022.02.03

Leetcode 1920번 풀이(파이썬, swift)

인덱스의 값을 배열에 한번더 참조한 값을 정답 배열에 집어넣으면 된다 젤 쉬운문제 파이썬 class Solution: def buildArray(self, nums: List[int]) -> List[int]: ans=[] for i in range(len(nums)): ans.append(nums[nums[i]]) return ans swift class Solution { func buildArray(_ nums: [Int]) -> [Int] { var a = [Int]() for (i,v) in nums.enumerated(){ a.append(nums[nums[nums.index(nums.startIndex, offsetBy:i)]]) } return a } }

리트코드 풀이 2022.02.03