본문 바로가기
Blog/TIL

[240605] 문제를 잘 파악하자

by 코젼 2024. 6. 5.
728x90
반응형

🔶코딩테스트


목차

    / 오늘의 TIL /


    코딩테스트

    https://school.programmers.co.kr/learn/courses/30/lessons/120907

     

    프로그래머스

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

    programmers.co.kr

     

    풀이

    X [연산자] Y = Z 형태여서 간단하게 배열 접근으로 풀 수 있는 문제다.

    여러 개의 연산자가 있는줄 알고 복잡하게 접근했다 ^^; 문제를 잘 읽자!

    class Solution {
        public static String[] solution(String[] quiz) {
    
            String[] answer = new String[quiz.length];
            String[] q = new String[quiz.length];
    
            for (int i = 0; i < quiz.length; i++) {
    
                q = quiz[i].split(" ");
    
                if (q[1].equals("-")) {
                    if (Integer.parseInt(q[0]) - Integer.parseInt(q[2]) == Integer.parseInt(q[4])) {
                        answer[i] = "O";
                    } else  answer[i] = "X";
                }
    
                if (q[1].equals("+")) {
                    if (Integer.parseInt(q[0]) + Integer.parseInt(q[2]) == Integer.parseInt(q[4])) {
                        answer[i] = "O";
                    } else  answer[i] = "X";
                }
            }
            return answer;
        }
    }

     

    런타임 에러 (반례)

    입력값 〉 ["-1 + 9 = 8", "-4 + 5 = 0"]
    기댓값 〉 ["O", "X"]

    Exception in thread "main" java.lang.NumberFormatException: For input string: "8", "-4 + 5"

    import java.util.Arrays;
    
    class Solution {
            public static String[] solution(String[] quiz) {
    
            String[] answer = new String[quiz.length];
    
            for (int i = 0; i < quiz.length; i++) {
    
                String[] split = quiz[i].split("=");
    
                int sum = Arrays.stream(split[0]
                        .replaceAll("- ", "-")
                        .replaceAll("[+] ", "")
                        .split(" ")
                ).mapToInt(Integer::parseInt).sum();
    
                if (sum == Integer.parseInt(split[1].trim())) {
                    answer[i] = "O";
                } else answer[i] = "X";
            }
            return answer;
        }
    }
    728x90
    반응형

    'Blog > TIL' 카테고리의 다른 글

    [240607] queue 복습2  (0) 2024.06.07
    [240606] queue 복습1  (0) 2024.06.07
    [240604] 값 타입, 페치 조인 배우기  (0) 2024.06.04
    [240603] JPA의 핵심, 연관관계의 주인 설정  (0) 2024.06.03
    [240602] JPA 영속성 컨텍스트  (0) 2024.06.02

    댓글