알고리즘/알고리즘 풀이

[프로그래머스_1] 음양 더하기 JAVA

데부한 2022. 4. 27. 20:02
반응형

 

그래 오늘은 1점 맞을만 했다..

 

 

코딩테스트 연습 - 음양 더하기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re

programmers.co.kr

 

 

문제

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

 

제한사항

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

 

CODE

import java.util.*;
class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;
        
        for(int i = 0; i < signs.length; i++) {
            if(signs[i]) {
                answer += absolutes[i];
            } else {
            	String temp = "-" + absolutes[i];
                answer += Integer.parseInt(temp);
            }
        }
        
        return answer;
    }
}

맨 처음에 '음 쉽다^^'라고 생각하면서 별 생각없이 코드를 작성했기 때문일까...? 아니면 지금이 새벽 1시가 그런걸까..... 왜 굳이 signs이 false일 때 String 타입으로 변환, 그걸 또 int로 변환.. 왜 이런걸까? 그냥 간단하게 -1을 곱해주면 되는 문제인데... 혹시 해피해킹을 사서 조금이라도 더 타이핑하길 원해서였을까...? 알수없다. 진짜 쉬운 문제라도 최선을 다해 풀어야할 것 같다.

반응형
class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;
        
        for(int i = 0; i < signs.length; i++) {
            answer += signs[i] ? absolutes[i] : absolutes[i] * -1;
        }
        return answer;
    }
}

정상적인 코드 투척......... 부끄럽다.

 

실행결과

 

반응형