728x90
코드 힌트
- 문자열 분리:
- 입력된 다항식을 공백(" ")을 기준으로 분리하여 각 항을 확인합니다. 이 과정에서 split(" ") 메소드를 사용합니다.
- 항의 구분:
- 각 항이 'x'를 포함하는지 여부를 확인합니다. 'x'가 포함된 항은 변수 항으로 취급하고, 나머지 항은 상수로 처리합니다.
- 계수 처리:
- 'x' 항이 단독으로 있는 경우 계수를 1로 설정합니다. 'x'와 숫자가 함께 있는 경우 해당 숫자를 계수에 추가합니다.
- 결과 문자열 구성:
- 변수 항과 상수 항의 값을 조합하여 최종 문자열을 만듭니다. 변수 항이 없거나 상수 항이 없는 경우 이를 적절히 처리합니다.
- 특별한 경우 처리:
- 모든 항이 0인 경우 "0"을 반환하고, 상수 항이 없거나 변수 항만 있는 경우 적절히 결과 문자열을 조정합니다.
정답은 더보기 클릭
더보기
class Solution {
public String solution(String polynomial) {
// 주어진 다항식을 공백 기준으로 나누어 부분 문자열 배열 생성
String[] parts = polynomial.split(" ");
int x = 0; // 'x' 항의 계수를 저장할 변수
int num = 0; // 상수를 저장할 변수
// 부분 문자열 배열을 순회하여 'x' 항과 상수 항을 구분
for (String s : parts) {
if (s.contains("x")) { // 'x' 항일 때
s = s.replace("x", ""); // 'x'를 제거하여 숫자만 남김
if (s.length() == 0) // 'x'만 있는 경우 계수는 1
x++;
else // 'x'와 숫자가 함께 있는 경우 숫자를 정수로 변환하여 계수에 추가
x += Integer.parseInt(s);
} else if (!s.equals("+")) { // '+'가 아닌 나머지 문자열은 상수 항
num += Integer.parseInt(s); // 상수 값을 정수로 변환하여 누적
}
}
String result; // 최종 결과 문자열
// 모든 항이 0인 경우
if (x == 0 && num == 0) {
return "0";
}
// 'x' 항이 1인 경우
if (x == 1) {
result = "x";
} else { // 'x' 항이 1보다 큰 경우
result = x + "x";
}
// 상수 항이 0인 경우
if (num == 0) {
return result;
} else if (x == 0) { // 'x' 항이 없는 경우
return "" + num;
} else { // 'x' 항과 상수 항이 모두 있는 경우
result += " + " + num;
}
return result; // 최종 결과 반환
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 특이한 정렬 (0) | 2024.08.17 |
---|---|
[프로그래머스] 유한소수 판별하기 (0) | 2024.08.17 |
[프로그래머스] 저주의 숫자 3 (0) | 2024.08.17 |
[프로그래머스] 등수 매기기 (0) | 2024.08.16 |
[프로그래머스] 로그인 성공? (0) | 2024.08.16 |