본문 바로가기
Algorithm/프로그래머스

[Algorithm / Programmers] OX퀴즈

by newtownboy 2024. 3. 12.


[Version]
⦁ 2024.03.12 / [Algorithm / Programmers] OX퀴즈

 

import java.util.*;

class Solution {
    public String[] solution(String[] quizs) {
        List<String> answer = new ArrayList<>();
        
        // 1. 반복문을 순회하며, 수식을 조회한다.
        for(String quiz : quizs) {
            boolean isPlus = true;
            int sum = 0;
            int round = 0;
            
            // 2. 입력받은 문자열을 공백을 기준으로 자른다.
            String[] words = quiz.split(" ");
            for(String word : words) {
                switch (word) {
                    case "+":
                        isPlus = true;
                        break;
                    case "-":
                        isPlus = false;
                        break;
                    case "=":
                        break;
                }
                
                // 3. 부호가 아니고 이미 덧셈이 완료되었으면 결과 값과 비교하여 부호를 넣는다.
                if(!word.equals("+") && !word.equals("-") && !word.equals("=") && round == 2) {
                    int result = Integer.parseInt(word);
                    if(result == sum) {
                        answer.add("O");
                    }else {
                        answer.add("X");
                    }
                }
                
                // 4. 수식에 맞게 숫자를 더한다.
                if(!word.equals("+") && !word.equals("-") && !word.equals("=") && isPlus) {
                    sum = sum + (Integer.parseInt(word) * 1);
                    round++;
                }
                
                if(!word.equals("+") && !word.equals("-") && !word.equals("=") && !isPlus) {
                    sum = sum + (Integer.parseInt(word) * -1);
                    round++;
                }
            }
        }
        
        // 5. 결과 값 리턴
        return answer.stream().toArray(String[]::new);
    }
}