โฐ๋ฌธ์
ํ ๊ฐ ์ด์์ ํญ์ ํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์์ ๋คํญ์์ด๋ผ๊ณ ํฉ๋๋ค. ๋คํญ์์ ๊ณ์ฐํ ๋๋ ๋๋ฅํญ๋ผ๋ฆฌ ๊ณ์ฐํด ์ ๋ฆฌํฉ๋๋ค. ๋ง์ ์ผ๋ก ์ด๋ฃจ์ด์ง ๋คํญ์ polynomial์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋๋ฅํญ๋ผ๋ฆฌ ๋ํ ๊ฒฐ๊ด๊ฐ์ ๋ฌธ์์ด๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๊ฐ์ ์์ด๋ผ๋ฉด ๊ฐ์ฅ ์งง์ ์์์ return ํฉ๋๋ค.
์ ํ์ฌํญ
- 0 < polynomial์ ์๋ ์ < 100
- polynomial์ ๋ณ์๋ 'x'๋ง ์กด์ฌํฉ๋๋ค.
- polynomial์ 0๋ถํฐ 9๊น์ง์ ์ ์, ๊ณต๋ฐฑ, ‘x’, ‘+'๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ํญ๊ณผ ์ฐ์ฐ๊ธฐํธ ์ฌ์ด์๋ ํญ์ ๊ณต๋ฐฑ์ด ์กด์ฌํฉ๋๋ค.
- ๊ณต๋ฐฑ์ ์ฐ์๋์ง ์์ผ๋ฉฐ ์์์ด๋ ๋์๋ ๊ณต๋ฐฑ์ด ์์ต๋๋ค.
- ํ๋์ ํญ์์ ๋ณ์๊ฐ ์ซ์ ์์ ์ค๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
- " + 3xx + + x7 + "์ ๊ฐ์ ์๋ชป๋ ์ ๋ ฅ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- "012x + 001"์ฒ๋ผ 0์ ์ ์ธํ๊ณ ๋ 0์ผ๋ก ์์ํ๋ ์๋ ์์ต๋๋ค.
- ๋ฌธ์์ ์ซ์ ์ฌ์ด์ ๊ณฑํ๊ธฐ๋ ์๋ตํฉ๋๋ค.
- polynomial์๋ ์ผ์ฐจ ํญ๊ณผ ์์ํญ๋ง ์กด์ฌํฉ๋๋ค.
- ๊ณ์ 1์ ์๋ตํฉ๋๋ค.
- ๊ฒฐ๊ด๊ฐ์ ์์ํญ์ ๋ง์ง๋ง์ ๋ก๋๋ค.
- 0 < polynomial์ ๊ธธ์ด < 50
์ ์ถ๋ ฅ ์
polynomial | result |
"3x + 7 + x" | "4x + 7" |
"x + x + x" | "3x" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- "3x + 7 + x"์์ ๋๋ฅํญ๋ผ๋ฆฌ ๋ํ๋ฉด "4x + 7"์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- "x + x + x"์์ ๋๋ฅํญ๋ผ๋ฆฌ ๋ํ๋ฉด "3x"์ ๋๋ค.
๐กํ์ด
โญ์ ์ถ ์ฝ๋
class Solution {
public String solution(String polynomial) {
String answer = "";
int x = 0; //~x๊ฐ
int n = 0; //์ ์
String[] str = polynomial.split(" ");
for(int i=0; i<str.length; i++){
if(str[i].contains("x")){ //x๊ฐ ์์ ๊ฒฝ์ฐ
x += str[i].equals("x") ? 1 : Integer.parseInt(str[i].replace("x", ""));
}else if(!str[i].equals("+")){
n += Integer.parseInt(str[i]);
}
}
if(x == 1 && n == 0){
answer = "x";
}else if(x == 1 && n != 0){
answer = "x + " + n;
}else if(x != 0 && n == 0){
answer = x + "x";
}else if(x != 0 && n != 0){
answer = x + "x + " + n;
}else if(x == 0 && n != 0){
answer = Integer.toString(n);
}
return answer;
}
}
๐ง ์ฝ๋ ํ์ด
1. ๋ณ์ x => ~x์ธ ๊ฐ์ ํฉ ์ ์ฅ
y => ์ซ์๋ง ์๋ ์ ์์ ํฉ ์ ์ฅ
2. ๋ฌธ์์ด(polynomial)์ ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ๋๋์ด ๋ฐฐ์ด(str)์ ์ ์ฅํ๋ค.
3. ๋ฐฐ์ด์ ๊ฐ ๊ฐ์ ๋ฌธ์์ด "x"๊ฐ ํฌํจ๋์ด์์ ๊ฒฝ์ฐ -> contains()๋ฉ์๋ ์ฌ์ฉ -> ๋ณ์x์ ๊ฐ์ ๋ํด์ค
(** ๊ฐ์ ๋ฌธ์์ด์ด "x"๋ผ๋ฉด ๊ณ์๋ 1์ด๋ฏ๋ก 1์,
์๋๋ผ๋ฉด ๊ฐ์ ๋ฌธ์์ด์์ "x"๋ฅผ ๋น์นธ์ผ๋ก ๋ฐ๊พผ ํ ์ ์๋ก ๋ณํํ ์๋ฅผ ๋ณ์x์ ๋ํด์ค๋ค.)
๋ฐฐ์ด์ ๊ฐ์ด "+"๊ฐ ์๋ ๊ฒฝ์ฐ (= ๋ฌธ์์ด "x"๊ฐ ํฌํจ๋์ด์์ง ์์ ๊ฒฝ์ฐ),
-> ๋ณ์n์ ๋ฐฐ์ด์ ๊ฐ์ ์ ์๋ก ๋ณํ ํ ๋ํ๋ค.
4. ๊ฐ ์ผ์ด์ค์ ๋ง๊ฒ answer์ return ํด์ค๋ค.
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ด์ง์ ๋ํ๊ธฐ(์๋ฐ) (0) | 2023.04.25 |
---|---|
[Programmers] ์น์์ด(1)(์๋ฐ) (0) | 2023.04.24 |
[Programmers] ์จ์ด์๋ ์ซ์์ ๋ง์ (2)(์๋ฐ) (0) | 2023.04.18 |
[Programmers] ์ต๋๊ฐ ๋ง๋ค๊ธฐ(2)(์๋ฐ) (0) | 2023.04.16 |
[Programmers] OXํด์ฆ(์๋ฐ) (0) | 2023.04.10 |