스위프트 21

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

indices의 값들에 해당하는 배열의 원소들을 indices의 인덱스에 해당되게끔 바꾸는 문제이다. 파이썬의 경우 구현이 쉬웠지만 스위프트는 아직 문자열과 배열의 교환이 어설퍼서 삽질을 했다. 파이썬 class Solution: def restoreString(self, s: str, indices: List[int]) -> str: s= [x for x in s] a=[0]*len(s) for i,v in enumerate(indices): a[v]=s[i] return "".join(a) 스위프트 class Solution { func restoreString(_ s: String, _ indices: [Int]) -> String { var a = [Character](repeating:"a", ..

리트코드 풀이 2022.02.08

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

for문을 전체 길이-1 까지 돌리고 그 안에 2중 for문으로 i+1부터 전체길이까지 두 값의 차이가 k인 것들의 개수를 +해준다. 파이썬: class Solution: def countKDifference(self, nums: List[int], k: int) -> int: cnt = 0 for i in range(len(nums)-1): for j in range(i+1, len(nums)): if abs(nums[i]-nums[j])==k: # 차이의 절대값이 k일때 cnt+=1 # cnt 1증가 return cnt 스위프트: class Solution { func countKDifference(_ nums: [Int], _ k: Int) -> Int { var cnt = 0 for i in 0..

카테고리 없음 2022.02.07

leetcode 1281 풀이(파이썬, 스위프트)

모르는게 많아서 블로그에 많은걸 포스팅하게 된 문제... map과 reduce에 익숙해지자... (파이썬으론 익숙해서 쉽다 파이썬짱) 숫자를 이루는 숫자들을 다뤄야하기 때문에 숫자를 그 숫자를 이루는 숫자들의 배열로 만들었고 for문으로 모두 곱한것에서 더한것을 빼줬다. 스위프트: class Solution { func subtractProductAndSum(_ n: Int) -> Int { var a = String(n).map{Int(String($0))!} return a.reduce(1){$0*$1} - a.reduce(0){$0+$1} } } 파이썬: class Solution: def subtractProductAndSum(self, n: int) -> int: n=[x for x in str..

리트코드 풀이 2022.02.07

스위프트의 배열과 문자열 꿀팁들

공부하다가 스위프트의 배열과 문자열은 파이썬과 달라서 정리해 봅니다. 주의할 점 위주로 정리해 봤습니다. 스위프트에서 문자열을 배열로 바꾸는 법 여러가지가 있으니 코드로 소개해 드리겠습니다. 열거형: let str = "ABC" var arr = [Character]() for i in str { arr.append(i) } print(arr) // ["A", "B", "C"] Array생성자로 직접 변환하기: let str = "ABC" let arr = Array(str) print(arr) // ["A", "B", "C"] map 이용하기: let str = "ABC".map { (n: Character) -> Character in return n } let str = "ABC".map { $0 ..

swift 2022.02.07

스위프트 배열에 원소 삽입, 제거, 찾기, 포함

스위프트 언어의 문법은 파이썬 언어라고 발표 초창기에 알려졌었다고 할 정도로 스위프트의 문법은 파이썬과 비슷한 부분이 많다. 값 삽입 배열에 원소를 삽입할 때는 어떨까? 배열의 맨 뒤에 값을 추가하는 방법으로는 append(_:)를 사용한다. 이는 파이썬과 동일함으로 생략하겠다. 배열의 특정 위치에 값을 삽입하고 싶을 경우에는 insert(_:at:)을 사용하고 예를 살펴보면 먼저 파이썬의 경우 a = [1, 2, 3] a.insert(0,0) print(a) # [0, 1, 2, 3] 0번째 인덱스에 0 삽입 스위프트의 경우 var a = [1, 2, 3] a.insert(0, at:0) print(a) 가 같은 코드가 되겠다. 한번에 여러 요소들을 한꺼번에 삽입하고 싶을 때는 append(conten..

swift 2022.02.07

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

stones문자열에 있는 문자가 jewel에 있으면 만들어둔 변수에 1을 더해줌 파이썬: class Solution: def numJewelsInStones(self, jewels: str, stones: str) -> int: jewels = [x for x in jewels] cnt=0 for i in range(len(stones)): if stones[i] in jewels: cnt+=1 return cnt 스위프트: class Solution { func numJewelsInStones(_ jewels: String, _ stones: String) -> Int { var a = 0 for s in stones where jewels.contains(s){ a+=1 } return a } }

리트코드 풀이 2022.02.06

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

extraCandies를 캔디 배열 값에 더했을때 다른 수보다 작지 않을 수 있냐는 문제. max함수로 최대값을 미리 저장해 두고 포문을 돌리며 비교 스위프트: class Solution { func kidsWithCandies(_ candies: [Int], _ extraCandies: Int) -> [Bool] { var maxcan = candies.max() var a = [Bool]() for i in 0..= maxcan!{ a.append(true) } else{ a.append(false) } } return a } } 파이썬: class Solution: def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bo..

리트코드 풀이 2022.02.06