1. 문제 설명 (📎Link)
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다.
실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
2. 제한사항
absolutes의 길이는 1 이상 1,000 이하입니다.
absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
signs의 길이는 absolutes의 길이와 같습니다.
signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
📝 문제
import Foundation
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
return 123456789
}
💻 내가 푼 방법
1) 오류 발생
![](https://blog.kakaocdn.net/dn/z7Ybb/btsIvcb80an/lmnuyAzgJxiIDkkfB0GLO1/img.png)
→ signs[i]의 인덱스가 정수이므로 for 조건에 들어가는 signs 부분도 동일하게 정수로 나올 수 있게 통일해야 함
2) 0...<signs.count 로 변경 → 성공
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var result: [Int] = []
for i in 0..<signs.count {
if signs[i] == true {
result.append(absolutes[i])
} else {
result.append(-absolutes[i])
}
}
return result.reduce(0, +)
}
3) Tuple 을 이용한 또 다른 풀이법!!
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var result: [Int] = []
//index와 value를 동시에 가져올 수 있음
//(순서, 값) - 변수명은 내맴대로
for (index, value) in signs.enumerated() {
//0번째 value가 true 라면
if value == true {
result.append(absolutes[index])
} else {
result.append(-absolutes[index])
}
}
return result.reduce(0, +)
}
🔎 의문점과 공부한 것
1. 알고리즘에 튜플을 적극적으로 사용해보자 (이유: 멋있음)
'🍎 Swift > Programmers' 카테고리의 다른 글
[👾 Programmers] 28. 없는 숫자 더하기 (contains/filter/reduce) (0) | 2024.07.23 |
---|---|
[👾 Programmers] 27. 핸드폰 번호 가리기 (0) | 2024.07.11 |
[👾 Programmers] 25. 나누어 떨어지는 숫자 배열 (0) | 2024.07.09 |
[👾 Programmers] 24. 서울에서 김서방 찾기 (0) | 2024.07.08 |
[👾 Programmers] 23. 콜라츠 추측 (0) | 2024.06.28 |