- 내 풀이
class Solution {
public String solution(String polynomial) {
String answer = "";
// 매개변수의 공백 + 공백 을 기준으로 배열에 담는다
String[] check = polynomial.split(" \\+ ");
// x의 값을 더하기 위한 변수
int x = 0;
// 상수항을 더하기 위한 변수
int sum = 0;
for (int i = 0; i < check.length; i++) {
// 매개변수의 값 중 x가 포함된 경우
if (check[i].contains("x")){
// x만 있는 경우는 length가 1보다 큼
if (check[i].length() > 1){
// x부분을 제외한 숫자만 x에 넣어준다
x += Integer.parseInt(check[i].substring(0 , check[i].length()-1));
}else {
// x만 있는 경우는 +1
x += 1;
}
}else {
// 매개변수에 x를 포함하지 않는 경우는 상수항으로서 따로 담는다
sum += Integer.parseInt(check[i]);
}
}
if (x != 0 && sum != 0){
if (x == 1){
answer = "x + "+sum;
}else{
answer = String.valueOf(x) + "x + " +sum;
}
} else if (x != 0 && sum == 0) {
// x가 1인 경우 1x가 아닌 x가 되어야 한다.
if(x == 1){
answer = "x";
}else {
answer = String.valueOf(x)+"x";
}
} else if(x == 0 && sum != 0){
answer = String.valueOf(sum);
}else if(x == 0 && sum == 0){
answer = "0";
}
return answer;
}
}
- 다른 사람 풀이
class Solution {
public String solution(String polynomial) {
int xCount = 0;
int num = 0;
for (String s : polynomial.split(" ")) {
if (s.contains("x")) {
xCount += s.equals("x") ? 1 : Integer.parseInt(s.replaceAll("x", ""));
} else if (!s.equals("+")) {
num += Integer.parseInt(s);
}
}
return (xCount != 0 ? xCount > 1 ? xCount + "x" : "x" : "") + (num != 0 ? (xCount != 0 ? " + " : "") + num : xCount == 0 ? "0" : "");
}
}
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] OX퀴즈 (0) | 2023.03.18 |
---|---|
[프로그래머스 - JAVA] 최빈값 구하기 (0) | 2023.03.18 |
[프로그래머스 - JAVA] 저주의 숫자 3 (0) | 2023.03.17 |
[프로그래머스 - JAVA] 문자열 밀기 (0) | 2023.03.17 |
[프로그래머스 - JAVA] 특이한 정렬 (0) | 2023.03.17 |
댓글