[Swift] [73일차] 3232_LEET

·2025년 2월 18일
0

SwiftAlgorithm

목록 보기
76/105
post-thumbnail

Virtual Cottage

스팀에 이런게임이 있길래 사용해봤다. 그냥 Lofi음악나오는 친구인데, 맥북되는게 얼마없어서 일단 이걸 사용하기로 결정

3232. Find if Digit Game Can Be Won


문제 설명

  1. 양수배열 주어짐
  2. 1자리수 vs 2자리수 합으로 싸움
  3. Alice가 이길때만 True (엘리스가 선공)

문제풀이

  1. nums.length로 판단을 해주던지 >=10으로 해서 두자리수와 한자리수 계산해서 이게 합이 같은 경우에만 false
  2. 그게 아닐경우는 true로 해주면 될 것 같다.
  3. 엘리스가 선턴이니까 원하는걸 집을테니...

최종 코드

class Solution {
    func canAliceWin(_ nums: [Int]) -> Bool {
        var single = 0
        var double = 0
        for num in nums {
            if num >= 10 { // double-digit 일때
                double += num
            }
            else {
                single += num
            }
        }
        return single != double
    }
}

사실 엄청 간결한 문제 였던 것 같다. 이게 문제가 더 어려웠으려면 다른 진수를 가져와서 하는 문제가 있었다면 더 어려웠을지도?

타인의 코드

class Solution {
    func canAliceWin(_ nums: [Int]) -> Bool {
        var sumSingleDigit = 0, sumDoubleDigit = 0
        
        for num in nums {
            if num < 10 {
                sumSingleDigit += num
            } else {
                sumDoubleDigit += num
            }
        }        
        return sumSingleDigit != sumDoubleDigit
    }
}

이번에는 완벽하게 동일했던 것 같다. 콘테스트 보니까 easy문제임에도 정답률이 낮으면 꽤 어렵던데, medium으로 다시 넘어가야할 것 같다는 생각을 다시 하게됐다.

profile
기억보단 기록을

0개의 댓글