728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA
음양 더하기
🏷 관련 주제 : Array 반복문 조건문 Boolean

✔ Solution with Loop & if-statement
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for (int i = 0; i < signs.length; i++) {
int n = absolutes[i];
if (!signs[i]) {
n *= -1;
}
answer += n;
}
return answer;
}
}
채점 결과

✔ Solution with IntStream & map & sum
import java.util.stream.IntStream;
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = IntStream.range(0, signs.length).map(i -> (signs[i]) ? absolutes[i] : absolutes[i] * -1).sum();
return answer;
}
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제 : 매개변수로 받은 양의 정수 배열 absolutes와 Boolean 배열 signs에 대하여signs[i] == true이면 absolutes[i]는 실제로 양수signs[i] == false이면 absolutes[i]는 실제로 음수
일 때, 실제 정수들의 합을 반환하시오.
처음에는 반복문과 조건문으로 문제를 풀었는데
Stream API로도 문제를 풀어보고 싶어서
도전해보았다.signs의 원소의 값에 따라 absolutes의 원소의 부호가 결정되기 때문에map()에서 삼항 연산자를 이용해 문제를 풀었다.sum()도 별로 사용해 보지 않았었는데 sum()으로 간단히 실제 정수들의 합을 구할 수 있었다.
💬 무엇을 새롭게 알았는지
- IntStream을 사용해 보았다.
- map()에 삼항 연산자를 사용해 보았다.
- sum()을 사용해 보았다.
📚 References(참고 자료)
728x90