티스토리 뷰

TIL

[코딩테스트] 음양 더하기

호호홍얍얍 2022. 5. 14. 14:46

같은 조의 팀장님의 방식을 따라하기로 했다.

생각하는 로직을 차례대로 풀어서 작성하는 것이다.

하면서 중간 중간에 로직이 수정되면 같이 수정해줬다.

public class exam07absolute {
    // 어떤 정수들이 있습니다.
    // 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은
    // 불리언 배열 signs가 매개변수로 주어집니다.
    // 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
    public static void main(String[] args) {
        int[] absolutes = new int[]{4,7,12};
        boolean[] signs = new boolean[]{true,false,true};
        int[] temp = new int[absolutes.length];
        int answer = 0;

        //1. for문으로 absolutes와 signs을 추출한다.
        //2. signs가 false이면 -로 변환한다.
        //3. absolutes와 signs를 차례대로 합쳐 temp에 넣어주고, parseInt로 숫자를 완성한다.
        //4. for문으로 answer에 answer를 더한다.

        for(int i=0; i<absolutes.length; i++) {
            if (signs[i]) {
                temp[i] = absolutes[i];
            }else {
                temp[i] = Integer.parseInt("-" + absolutes[i]);
            }
        }

        for (int j=0; j<temp.length; j++) //중괄호를 안 해도 된다.
            answer += temp[j];

        System.out.println(answer);
        return ;
    }
 }

 

오 쉽네, 하면서 풀었는데, 다른 사람의 풀이를 보고 나니 내가 얼마나 허접했는가 생각된다.

아래처럼 -1을 곱해주면 되는 건데, 굳이 -1을 문자열에 더해서 파스인트를 하다니...!

생각을 좀더 단순하게 할 필요가 있는 것 같다.

지금은 왠지 아는 걸 다 써먹어 보려는 단계인 것 같다...

 

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;
            }
}

 

아래 코드는 index out of bounds exception이 발생한다. 왤까?


        for (int i:absolutes) {
            if (signs[i]) {
                temp[i] = absolutes[i];
            } else {
                temp[i] = Integer.parseInt("-" + absolutes[i]);
            }
        }

 

 

'TIL' 카테고리의 다른 글

[코딩테스트] 전화번호 마스킹 처리하기  (0) 2022.05.14
[코딩테스트] 평균 구하기  (0) 2022.05.14
두 정수 사이의 합 구하기  (0) 2022.05.13
가운데 글자 가져오기  (0) 2022.05.13
자바 - 단항연산자  (0) 2022.05.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함