Where who wants to meet someone

n보다 커질 때까지 더하기 본문

프로그래머스 알고리즘 문제 기록/코딩 기초 트레이닝

n보다 커질 때까지 더하기

Lust3r 2024. 1. 25. 21:18
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/181884

 

프로그래머스

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

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

import Foundation

func solution(_ numbers:[Int], _ n:Int) -> Int {
    var result = 0

    for i in numbers.indices where result <= n {
        result += numbers[i]
    }

    return result
}

- numbers index 각 항목을 돌면서 result가 n보다 크지 않다면 result 값에 numbers의 i 인덱스 요소를 더하고, 최종 result값을 반환함

 

// 많은 사람들이 사용한 풀이
import Foundation

func solution(_ numbers:[Int], _ n:Int) -> Int {
    var answer = 0
    for number in numbers where answer <= n { answer += number }
    return answer
}

// 다음 풀이
import Foundation

func solution(_ numbers:[Int], _ n:Int) -> Int {
    return numbers.reduce(0) { $0 > n ? $0 : $0 + $1 }
}

- 첫 풀이는 indices를 통해 numbers[i]의 값을 더해주는 것이 아니라 numbers 항목 안에서 for문을 했기 때문에 값을 바로 더해주는 방식을 사용

- 두 번째 풀이는 reduce로 더해주는데, 이전 값($0)이 n보다 크다면 $0을, 아니라면 이전 값에 이번 값($1)을 더한 것을 넘기는 방식을 사용

 

점수: +1

'프로그래머스 알고리즘 문제 기록 > 코딩 기초 트레이닝' 카테고리의 다른 글

조건에 맞게 수열 변환하기 1  (0) 2024.01.26
수열과 구간 쿼리 1  (0) 2024.01.25
할 일 목록  (1) 2024.01.25
5명씩  (0) 2024.01.25
홀수 vs 짝수  (0) 2024.01.25