문제
내가 작성한 오답
• includeX == 0인 경우 answer = Integer.toString(num);
→ 만약 includeX == 0이고 num == 0이면, answer = "0"이 되어야 하지만, 문제에서 0은 주어지지 않으므로 필요 없는 처리임.
• num == 0일 때 "1x"가 아닌 "x"로 변환하는 처리가 없음.
→ 예를 들어 includeX == 1이면 "1x"가 아니라 "x"여야 하는데 이를 고려하지 않음.
class Solution {
public String solution(String polynomial) {
String answer = "";
String[] poly = polynomial.split(" ");
int includeX = 0;
int num = 0;
for(int i = 0; i < poly.length; i+=2){
if(poly[i].contains("x")){
String a = poly[i].replace("x","");
includeX += a.isEmpty() ? 1 : Integer.parseInt(a);
} else {
num += Integer.parseInt(poly[i]);
}
}
if(includeX==0){
answer = Integer.toString(num);
} else {
if(num==0){
answer = Integer.toString(includeX)+"x";
}else {
answer = Integer.toString(includeX)+"x + "+Integer.toString(num);
}
}
return answer;
}
}
내가 작성한 정답
class Solution {
public String solution(String polynomial) {
String answer = "";
String[] poly = polynomial.split(" ");
int includeX = 0;
int num = 0;
for(int i = 0; i < poly.length; i+=2){
if(poly[i].contains("x")){
String a = poly[i].replace("x","");
includeX += a.isEmpty() ? 1 : Integer.parseInt(a);
} else {
num += Integer.parseInt(poly[i]);
}
}
StringBuilder result = new StringBuilder();
if (includeX > 0) {
result.append(includeX == 1 ? "x" : includeX + "x")
}
if (num > 0) {
if (result.length() > 0) {
result.append(" + ");
}
result.append(num);
}
return result.toString();
}
}
다른 사람들의 정답
class Solution {
public String solution(String polynomial) {
int xCount = 0; // x의 계수를 저장할 변수
int num = 0; // 정수 부분을 저장할 변수
// 입력된 다항식을 공백으로 나누어 각 항을 처리
for (String s : polynomial.split(" ")) {
if (s.contains("x")) { // 현재 항이 x를 포함하는 경우
// 'x'만 있는 경우에는 1을 더하고, 계수가 있는 경우에는 그 계수를 더함
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" : "") + // x의 계수 처리
(num != 0 ? (xCount != 0 ? " + " : "") + num : xCount == 0 ? "0" : ""); // 정수 부분 처리
}
}
Share article