Where who wants to meet someone
n보다 커질 때까지 더하기 본문
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 |