티스토리 뷰

코딩테스트

Lv.0 swift 날짜 비교하기

알롱도담쓰 2024. 3. 25. 11:09

문제 설명

정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.

만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.

제한 조건

date1의 길이 = date2의 길이 = 3
0 ≤ year ≤ 10,000
1 ≤ month ≤ 12
day는 month에 따라 가능한 날짜로 주어집니다.

내 답안

func solution(_ date1:[Int], _ date2:[Int]) -> Int {
    
    if date1[0] != date2[0] {
        return date1[0] < date2[0] ? 1 : 0
    }
    
    if date1[1] != date2[1] {
        return date1[1] < date2[1] ? 1 : 0
    }
    
    if date1[2] != date2[2] {
        return date1[2] < date2[2] ? 1 : 0
    }
    
    return 0
}

접근 방법

연 -> 월 -> 일 순으로 비교해서 리턴 

다른 풀이

func solution(_ date1: [Int], _ date2: [Int]) -> Int { 
date1[0] * 10000 + date1[1] * 100 + date1[2] < date2[0] * 10000 + date2[1] * 100 + date2[2] ? 1 : 0 }

 

연 * 10000 / 월 * 100 해서 날짜 형식을 20211228 의 정수로 만든 후에 비교

 

 

알게 된 것

년월일 각각 생각해도 되지만 날짜 구할 때 하나의 큰 정수로 만들어서 비교할 수도 있구나 

 

'코딩테스트' 카테고리의 다른 글

Lv.0 swift 분수의 덧셈  (0) 2024.03.27
Lv.0 swift 배열 만들기 5  (0) 2024.03.25
Lv.0 swift 세로 읽기  (0) 2024.03.24
Lv.0 swift 배열 만들기 3  (0) 2024.03.23
Lv.0 swift 접미사 배열  (0) 2024.03.23
최근에 올라온 글