👨🏻‍💻Computer Science/💻Algorithm

[프로그래머스] 음양더하기 - Java

급할수록도라에몽 2022. 12. 14. 19:45
728x90

음양더하기 - Java

Description

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 boolean 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.


제한사항

  • absolutes의 길이는 1 이상 1,000 이하입니다.
    • absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
  • signs의 길이는 absolutes의 길이와 같습니다.
    • signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.

입출력 예

absolutes signs result
[4, 7, 12] [true, false, true] 9
[1,2,3] [false, false, true] 0

class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;
        for (int i = 0; i < absolutes.length; i++) {
            if (signs[i]) {
                answer += absolutes[i];
            } else {
                answer -= absolutes[i];
            }
        }
        return answer;
    }
}

for 반복문과 if 문으로 푼 풀이

answer을 0으로 설정해주고

signs[i]가 true이면 absolutes[i]는 양수이므로 바로 anwer에 더해주고 false이면 -=으로 빼준다.

 

class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;

        for (int i=0; i<signs.length; i++)
            answer += absolutes[i] * (signs[i]? 1: -1);
        return answer;
	}
}

삼항연산자로 푼 풀이

(signs[i] ? 1 : -1)는  signs[i]가 true면 1 그렇지 않으면 -1을 뽑아서 absolutes[i]와 곱해준다.

그러면 부호가 결정되기 때문에 바로 answer에 더해주는 모오습

 

 

length vs length() in Java - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

프로그래머스

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

programmers.co.kr