풀이
- 우선 해당 문제는 StringTokenizer를 사용하여 빈 공백을 제거한 문자를 받아서
- x와 함께 있는 문자는 substring을 사용해서 x 전까지만 정수 타입 x에 담고
- 정수만 있는 경우 y에 담아서 조건 처리 후 해결.
- 자바 문제는 또 오랜만에 풀다보니 쉽지 않았어서
- 헷갈렸던 코드에 대해 한 번 끄적이고 마무리 하겠습니다.
- 우선 StringTokenizer로 분해된 문자가 몇개 있지 모를 경우엔
hasMoreTokens()를 사용해서 반복할 수 있도록 하기 - 또한 substring에 첫 인자값만 넣으면 하나만 되는 것으로 기억하고 있었는데 그게 아니였다.
- 그리고 String.format()을 사용해서 문자안에 %d,%s,%f로 원하는 타입의 값을 추가할 수 있다는 것.
import java.util.*;
class Solution {
public String solution(String polynomial) {
StringTokenizer st = new StringTokenizer(polynomial);
int x = 0;
int y = 0;
while (st.hasMoreTokens()) {
String s = st.nextToken();
if (s.equals("+")) continue;
else if (s.substring(s.length()-1).equals("x")) {
if (s.equals("x")) x += 1;
else x += Integer.parseInt(s.substring(0,s.length()-1));
}
else y += Integer.parseInt(s);
}
if (x == 0) return String.valueOf(y);
else if (y == 0) {
if (x == 1) return "x";
else return x+"x";
}
else {
if (x == 1) return String.format("x + %d",y);
else return String.format("%dx + %d",x,y);
}
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바] 캐릭터의 좌표 (0) | 2024.03.15 |
---|---|
[프로그래머스, 자바] 로그인 성공? (0) | 2024.03.15 |
[프로그래머스, 파이썬] 택배상자 (0) | 2024.03.14 |
[프로그래머스, 파이썬] 푸드 파이터 대회 (0) | 2024.03.14 |
[프로그래머스, 파이썬] 문자열 내 마음대로 정렬하기 (0) | 2024.03.14 |