문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120907

제한 사항

입출력 예

풀이
import java.util.regex.Pattern;
import java.util.regex.Matcher;
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
Pattern pattern = Pattern.compile("-*\\d+|\\+|\\-");
Matcher matcher;
for (int i = 0; i < quiz.length; i++) {
int[] result = new int[4];
String sign = "";
matcher = pattern.matcher(quiz[i]);
int j = 0;
while(matcher.find()) {
String str = matcher.group();
if (j == 1) sign = str;
else {
if (str.contains("-")) {
str = str.replaceAll("- *", "");
result[j] = -Integer.parseInt(str.trim());
}
else result[j] = Integer.parseInt(str.trim());
}
j++;
}
if (sign.equals("+")) answer[i] = (result[3] == result[0] + result[2]) ? "O" : "X";
else answer[i] = (result[3] == result[0] - result[2]) ? "O" : "X";
}
return answer;
}
}
후기
생각을 너무 많이해서 코드가 길어졌다;; 음수도 변환할 때 그냥 넣어도 되는데 굳이 힘든 길을 갔다... 이렇게 풀지 마시길
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][Java][Lv. 2] 전화번호 목록 (0) | 2023.09.19 |
|---|---|
| [프로그래머스][JAVA][Lv. 2] 타겟 넘버 (0) | 2023.09.18 |
| [프로그래머스][JAVA][Lv. 2] 피로도 (0) | 2023.09.17 |
| [프로그래머스][JAVA][Lv. 4] 도둑질 (0) | 2023.09.16 |
| [프로그래머스][JAVA][Lv. 3] 이중우선순위큐 (0) | 2023.09.15 |