길이에 따른 연산
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제는 리스트의 길이에 따라 계산 방식이 달라지는 상황이야. 리스트에 있는 숫자들을 적절하게 처리해서 조건에 맞는 값을 반환하는 것이 목표지! 𓅰𓅭𓅰𓅯
1. 리스트 길이 확인하기
먼저 리스트의 길이에 따라 두 가지 조건을 처리해야 해.
- 리스트의 길이가 11 이상이면 모든 원소의 합을 구해야 하고,
- 리스트의 길이가 10 이하이면 모든 원소의 곱을 구해야 해.!
여기서 조건에 따라 다른 계산 방식을 적용해야 하니까, 먼저 리스트의 길이를 체크하는 게 중요하다구.
if num_list.count >= 11 {
// 리스트의 길이가 11 이상인 경우 합 계산
} else {
// 리스트의 길이가 10 이하인 경우 곱 계산
}
2. 리스트의 모든 원소의 합 구하기
리스트의 길이가 11 이상이면 리스트에 있는 모든 숫자를 더해야 해.
이때 reduce 함수를 사용하면 편리하게 리스트의 원소들을 더할 수 있어.!
let sum = num_list.reduce(0, +)
reduce(0, +)는 리스트의 모든 숫자를 더한 결과를 반환해 줘. 초기값으로 0을 주고, 리스트의 각 원소를 차례로 더하는 방식이야.
3. 리스트의 모든 원소의 곱 구하기
리스트의 길이가 10 이하인 경우는 모든 숫자를 곱해야 해.
곱셈도 reduce 함수로 해결할 수 있어. 이번엔 초기값을 1로 설정하고 곱셈을 해주자.
let product = num_list.reduce(1, *)
reduce(1, *)는 리스트의 모든 숫자를 곱한 결과를 반환해줘. 1부터 시작해서 리스트의 각 원소를 차례대로 곱해 나가는 방식이지.
4. 결과 반환하기
이제 조건에 맞게 계산된 결과를 반환하면 돼. ( ‘Θ’)ノ
if num_list.count >= 11 {
return num_list.reduce(0, +) // 리스트의 합을 반환
} else {
return num_list.reduce(1, *) // 리스트의 곱을 반환
}
최종 코드
전체 코드는 아래와 같이 제출 완료!
func solution(_ num_list: [Int]) -> Int {
if num_list.count >= 11 {
return num_list.reduce(0, +)
} else {
return num_list.reduce(1, *)
}
}
이 코드는 주어진 리스트의 길이에 따라 모든 숫자의 합이나 곱을 반환하는 거야.
리스트의 크기에 따라 계산을 다르게 하는 부분이 포인트랄까..
'iOS 앱 개발자 프로젝트 > 알고리즘 코드카타' 카테고리의 다른 글
[Algorithm] 마지막 두 원소 (w/ Swift) (8) | 2024.10.09 |
---|---|
[Algorithm] 문자열 다루기 (w/ Swift) (2) | 2024.10.07 |
[Algorithm] 영어가 싫어요 (w/ Swift) (0) | 2024.09.15 |
[Algorithm] 배열 회전시키기(w/ Swift) (0) | 2024.09.06 |
[Algorithm] 옷가게 할인 받기 (0) | 2024.08.30 |