리트코드 풀이 20

leetcode 1791. Find Center of Star Graph (파이썬)

별모양 그래프의 중심을 찾는 문제. 한 노드와 모든 노드가 연결돼 있으므로 그 노드를 찾으면 된다. 그 노드는 반드시 선분에 포함돼 있으므로 edges[0]과 edges[1]만 비교해 보더라도 엣지들에서 공통되는 노드가 중심 노드이다. class Solution: def findCenter(self, edges: List[List[int]]) -> int: if edges[0][0]==edges[1][0] or edges[0][0]==edges[1][1]: return edges[0][0] return edges[0][1]

리트코드 풀이 2022.02.26

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 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

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

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