본문 바로가기

IT/프로그래머스

[프로그래머스] OX퀴즈 - Java

반응형

 

 

 

 

문제

 

 

 

 

 

 

풀이

반목문을 돌려 index마다 문자열을 띄어쓰기 기준으로 나눈 후, 숫자는 int형으로 바꾸어 계산한다.

계산 조건에서 틀리면 X, 맞으면 O를 answer 배열에 넣어 return 한다.

 

 

 

 

코드

import java.util.List;
import java.util.ArrayList;

class Solution {
    public String[] solution(String[] quiz) {
        String[] answer = new String[quiz.length];
		String[] arr = new String[5];				//수식이 "X [연산자] Y = Z" 형태라는 조건이 있기 때문에 크기로 5를 주어도 상관없다.
		List<Integer> i_arr = new ArrayList<>();	//배열로 (크기:3) 선언하였을 때는 오버플로우가 떠서 list로 선언해 주었다.
		
		for(int i=0; i<quiz.length; i++) {
			arr = quiz[i].split(" ");				//공백을 기준으로 나눈다.
			
			for(int j=0; j<arr.length; j+=2) {
				i_arr.add(Integer.parseInt(arr[j]));	//숫자만 Integer 형식으로 변환시켜서 리스트에 담는다.
			}
			
			if(arr[1].equals("+")) {
				if(i_arr.get(0) + i_arr.get(1) == i_arr.get(2)) {
					answer[i] = "O";
				}else {
					answer[i] = "X";
				}
			}else {
				if(i_arr.get(0) - i_arr.get(1) == i_arr.get(2)) {
					answer[i] = "O";
				}else {
					answer[i] = "X";
				}
			}
				i_arr.clear();				//list를 초기화 시켜준다.
		}
        
        return answer;
    }
}

(이번 코드는 조금 번잡하네요..ㅎㅎ 코드를 간단하게 만들 수 있는 방법을 찾아보겠습니다..)

 

 

 

 

반응형