728x90
반응형
🔶코딩테스트
≣ 목차
/ 오늘의 TIL /
코딩테스트
https://school.programmers.co.kr/learn/courses/30/lessons/120907
풀이
X [연산자] Y = Z 형태여서 간단하게 배열 접근으로 풀 수 있는 문제다.
여러 개의 연산자가 있는줄 알고 복잡하게 접근했다 ^^; 문제를 잘 읽자!
class Solution {
public static String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
String[] q = new String[quiz.length];
for (int i = 0; i < quiz.length; i++) {
q = quiz[i].split(" ");
if (q[1].equals("-")) {
if (Integer.parseInt(q[0]) - Integer.parseInt(q[2]) == Integer.parseInt(q[4])) {
answer[i] = "O";
} else answer[i] = "X";
}
if (q[1].equals("+")) {
if (Integer.parseInt(q[0]) + Integer.parseInt(q[2]) == Integer.parseInt(q[4])) {
answer[i] = "O";
} else answer[i] = "X";
}
}
return answer;
}
}
런타임 에러 (반례)
입력값 〉 ["-1 + 9 = 8", "-4 + 5 = 0"]
기댓값 〉 ["O", "X"]
Exception in thread "main" java.lang.NumberFormatException: For input string: "8", "-4 + 5"
import java.util.Arrays;
class Solution {
public static String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
for (int i = 0; i < quiz.length; i++) {
String[] split = quiz[i].split("=");
int sum = Arrays.stream(split[0]
.replaceAll("- ", "-")
.replaceAll("[+] ", "")
.split(" ")
).mapToInt(Integer::parseInt).sum();
if (sum == Integer.parseInt(split[1].trim())) {
answer[i] = "O";
} else answer[i] = "X";
}
return answer;
}
}
728x90
반응형
'Blog > TIL' 카테고리의 다른 글
[240607] queue 복습2 (0) | 2024.06.07 |
---|---|
[240606] queue 복습1 (0) | 2024.06.07 |
[240604] 값 타입, 페치 조인 배우기 (0) | 2024.06.04 |
[240603] JPA의 핵심, 연관관계의 주인 설정 (0) | 2024.06.03 |
[240602] JPA 영속성 컨텍스트 (0) | 2024.06.02 |
댓글