본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] OX퀴즈

728x90

코드 힌트

  1. 문제 구문 분리:
    • 각 문제 문자열을 공백(" ")을 기준으로 분리하여 피연산자, 연산자, 예상 결과를 추출합니다.
    • 예를 들어, "3 + 4 = 7"을 "3", "+", "4", "7"로 분리합니다.
  2. 연산자에 따른 연산 수행:
    • 연산자를 확인하고, 적절한 산술 연산(덧셈 또는 뺄셈)을 수행하여 결과를 계산합니다.
    • "+" 연산자는 덧셈을 수행하고, "-" 연산자는 뺄셈을 수행합니다.
  3. 결과 비교 및 저장:
    • 계산한 결과가 예상 결과와 일치하는지 비교합니다.
    • 결과가 일치하면 "O"를, 그렇지 않으면 "X"를 결과 배열에 저장합니다.
  4. 결과 배열 반환:
    • 최종적으로 각 문제에 대한 결과를 포함하는 배열을 반환합니다.

 


정답은 더보기 클릭

더보기
class Solution {
    public String[] solution(String[] quiz) {
        // 결과를 저장할 배열을 초기화합니다.
        String[] result = new String[quiz.length];
        
        // 결과 배열의 인덱스
        int index = 0;
        
        // 주어진 각 문제를 순회합니다.
        for (String quizQuestion : quiz) {
            // 문제를 공백을 기준으로 분리합니다.
            String[] parts = quizQuestion.split(" ");
            int firstOperand = Integer.parseInt(parts[0]); // 첫 번째 피연산자
            int secondOperand = Integer.parseInt(parts[2]); // 두 번째 피연산자
            
            String operator = parts[1]; // 연산자
            
            int expectedResult = Integer.parseInt(parts[4]); // 예상 결과
            
            // 연산자에 따라서 계산을 수행하고 결과를 비교합니다.
            if (operator.equals("-") && firstOperand - secondOperand == expectedResult) {
                result[index++] = "O"; // 결과가 맞으면 "O"를 저장합니다.
            } 
            else if (operator.equals("+") && firstOperand + secondOperand == expectedResult) {
                result[index++] = "O"; // 결과가 맞으면 "O"를 저장합니다.
            } else {
                result[index++] = "X"; // 결과가 맞지 않으면 "X"를 저장합니다.
            }
        }
        
        // 최종 결과 배열을 반환합니다.
        return result;
    }
}
728x90