분류 전체보기 249

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

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

1. 배열을 만든다 2. 배열의 첫번째 원소에 first를 넣는다. 3. 2번째 원소 부터는 first, encoded[0], encoded[1], encoded[2]을 비트 연산한 결과를 배열에 넣는다. (3번이 풀이가 될 수 있는 이유는 xor연산은 역함수를 해도 결과가 같기 때문이다.) 4. 4번이 핵심인데 매번 비트연산한 결과를 first와 encoded를 포함한 배열에 갱신시켜줘야 한다. 이것을 하지 않아서 결과가 다르게 나왔었고 수정했다. 파이썬: class Solution: def decode(self, encoded: List[int], first: int) -> List[int]: b=[first] encoded.insert(0, first) a=encoded for i in range(..

리트코드 풀이 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

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

nums에 있는 숫자들을 일일히 비교해가면서 배열의 다른 몇개의 숫자보다 더 큰지 판별하는 것인 줄 알았다. 하지만 nums를 다른 배열에 넣어두고 nums를 정렬한 후 인덱스를 찾으면 훨씬 좋은방법이 된다는걸 깨달았다. 스위프트의 경우 nums는 let 변수이니 var에 담아두고 sort()나 sorted()함수를 이용하자 스위프트: class Solution { func smallerNumbersThanCurrent(_ nums: [Int]) -> [Int] { var a = [Int]() var b = nums var s = nums s.sort() for i in 0.. List[int]: b=[] for i in range(len(nums)): b.append(nums[i]) nums.sort(..

리트코드 풀이 2022.02.06

리트코드 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

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

스위프트는 replacingOccurrences 메소드, 파이썬은 replace 메소드를 사용할 줄 아는지 묻는 문제. 물론 풀이는 다양할 수 있다. 스위프트: class Solution { func defangIPaddr(_ address: String) -> String { var a = address a = a.replacingOccurrences(of: ".", with: "[.]") return a } } 파이썬: class Solution: def defangIPaddr(self, address: str) -> str: address=address.replace(".","[.]") return address

리트코드 풀이 2022.02.05