본문 바로가기

iOS 앱 개발자 프로젝트/알고리즘 코드카타

[Algorithm] 마지막 두 원소 (w/ Swift)

마지막 두 원소
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이번 문제는 리스트의 마지막 두 원소를 비교해서 조건에 따라 새로운 값을 추가하는 문제야.

  1. 리스트에서 마지막 두 개의 원소를 확인하는 거야. 예를 들어, 리스트가 [1, 2, 3, 4]라고 하면, 3과 4를 비교하는 거지.
  2. 마지막 원소가 그 전 원소보다 크면, 두 값의 차이를 리스트에 추가하는 거야. 예를 들어, 마지막 원소 4가 그 전 원소 3보다 크니까 4 - 3 = 1을 추가해.
  3. 만약 마지막 원소가 그 전 원소보다 크지 않으면, 마지막 원소를 두 배로 해서 리스트에 추가해. 예를 들어, 마지막 원소가 2인데 그 전 원소가 3이라면, 2 * 2 = 4를 리스트에 더해주는 거야.. 어렵지 않지?  ໒・ﻌ・७

 

func solution(_ num_list: [Int]) -> [Int] {
    var numList = num_list
    if numList.count >= 2 {
        let lastElement = numList[numList.count - 1] // 마지막 원소
        let secondLastElement = numList[numList.count - 2] // 그 전 원소
        
        if lastElement > secondLastElement {
            numList.append(lastElement - secondLastElement) // 마지막이 더 크면 차이를 추가
        } else {
            numList.append(lastElement * 2) // 그렇지 않으면 마지막 원소의 두 배를 추가
        }
    }
    return numList // 새로운 리스트 반환
}

 

 

요약하자면, 리스트의 마지막 두 개 원소를 비교해서,

  • 마지막 원소가 더 크면 차이를 추가하고,
  • 그렇지 않으면 마지막 원소의 두 배를 리스트에 더하는 거~! 

이해하기 쉬웠지?  ૮⍝• ᴥ •⍝ა