728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120907
문제)덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
풀이)
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
for(int i=0; i< quiz.length; i++){
String a = "";
a = quiz[i].trim();
a = quiz[i].replaceAll("--", "+");
a = quiz[i].replaceAll("\\s+", "");
if(a.charAt(0)=='-'){
String T = a.substring(1, a.length());
if(T.indexOf("+")==-1){
//-일 경우
int x = T.indexOf("-");
int y = T.indexOf("=");
int x1 = Integer.parseInt(T.substring(0,x));
int x2 = Integer.parseInt(T.substring(x+1, y));
int ans = Integer.parseInt(T.substring(y+1,T.length()));
int c = -x1-x2;
if(c==ans){
answer[i]="O";
}else{
answer[i]="X";
}
} else {
int x = T.indexOf("+");
int y = T.indexOf("=");
int x1 = Integer.parseInt(T.substring(0,x));
int x2 = Integer.parseInt(T.substring(x+1, y));
int ans = Integer.parseInt(T.substring(y+1,(T.length())));
int c = -x1+x2;
if(c==ans){
answer[i]="O";
}else{
answer[i]="X";
}
}
}else{
if(a.indexOf("+")==-1){
//-일 경우
int x = a.indexOf("-");
int y = a.indexOf("=");
int x1 = Integer.parseInt(a.substring(0,x));
int x2 = Integer.parseInt(a.substring(x+1, y));
int ans = Integer.parseInt(a.substring(y+1,a.length()));
int c = x1-x2;
if(c==ans){
answer[i]="O";
}else{
answer[i]="X";
}
} else {
int x = a.indexOf("+");
int y = a.indexOf("=");
int x1 = Integer.parseInt(a.substring(0,x));
int x2 = Integer.parseInt(a.substring(x+1, y));
int ans = Integer.parseInt(a.substring(y+1,(a.length())));
int c = x1+x2;
if(c==ans){
answer[i]="O";
}else{
answer[i]="X";
}
}
}
}
return answer;
}
}
문제를 제대로 안읽고 풀어서 음수일떄는 문자앖에 공백이 없고 기호일때만 공백이 있다고 했는데, 그냥 무시하고 풀어서 식이 훨씬 복잡해졌다. 다음번에는 문제대로 푼 간단한 식을 추가로 첨부하던가 새로 포스팅 해야겠다.ㅠㅠ
2/28
공백을 이용해 푸는 다른 방법을 포스팅 했다.
https://lavenderje.tistory.com/209
728x90
'프로그래밍 > Java(자바)' 카테고리의 다른 글
[SW Expert Academy] 2070. 큰 놈, 작은 놈, 같은 놈 --java (0) | 2024.03.08 |
---|---|
[프로그래머스] OX퀴즈 --java -공백을 이용해서 푸는방법 (1) | 2024.02.28 |
[프로그래머스] 문자열 밀기 --java (0) | 2024.02.26 |
[프로그래머스] 세 개의 구분자 --java (0) | 2024.02.20 |
[프로그래머스] 문자열 잘라서 정렬하기 --java (0) | 2024.02.20 |