
Problem ๐ป
https://school.programmers.co.kr/learn/courses/30/lessons/120839
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๋ฌธ์ ์ค๋ช
๊ฐ์๋ 2 ๋ฐ์๋ 0 ๋ณด๋ 5๋ก ํํํฉ๋๋ค. ๊ฐ์ ๋ฐ์ ๋ณด๋ฅผ ๋ด๋ ์์๋๋ก ๋ํ๋ธ ๋ฌธ์์ด rsp๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, rsp์ ์ ์ฅ๋ ๊ฐ์ ๋ฐ์ ๋ณด๋ฅผ ๋ชจ๋ ์ด๊ธฐ๋ ๊ฒฝ์ฐ๋ฅผ ์์๋๋ก ๋ํ๋ธ ๋ฌธ์์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
- 0 < rsp์ ๊ธธ์ด ≤ 100
- rsp์ ๊ธธ์ด๊ฐ ๊ฐ์ ๋ฌธ์์ด์ return ํฉ๋๋ค.
- rsp๋ ์ซ์ 0, 2, 5๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์rspresult
| "2" | "0" |
| "205" | "052" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- "2"๋ ๊ฐ์์ด๋ฏ๋ก ๋ฐ์๋ฅผ ๋ํ๋ด๋ "0"์ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- "205"๋ ์์๋๋ก ๊ฐ์, ๋ฐ์, ๋ณด์ด๊ณ ์ด๋ฅผ ๋ชจ๋ ์ด๊ธฐ๋ ค๋ฉด ๋ฐ์, ๋ณด, ๊ฐ์๋ฅผ ์์๋๋ก ๋ด์ผํ๋ฏ๋ก “052”๋ฅผ returnํฉ๋๋ค.
Approach โญ
๋ฌธ์ ๋ถ์
1. "๊ฐ์, ๋ฐ์, ๋ณด"์ ์๊ด๊ด๊ณ
- ๊ฐ์2๋ฅผ ์ด๊ธฐ๋ ค๋ฉด ๋ฐ์0์ ๋ด์ผ ํจ.
- ๋ฐ์0์ ์ด๊ธฐ๋ ค๋ฉด ๋ณด5๋ฅผ ๋ด์ผ ํจ.
- ๋ณด5๋ฅผ ์ด๊ธฐ๋ ค๋ฉด ๊ฐ์2๋ฅผ ๋ด์ผ ํจ.
2. ์ฃผ์ด์ง rsp ๋ฌธ์์ด์ ์ํํ๋ฉด์ ๊ฐ ์ซ์๋ฅผ ์ด๊ธธ ์ ์๋ ์ซ์๋ก ๋ณํํ๋ฉด ๋๋ค.
ํ์ด ๋ ผ๋ฆฌ
1. ์ ๋ ฅ๊ฐ ํ์ :
- rsp๋ ์ซ์๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด๋ค.
- ๊ฐ ๋ฌธ์๋ฅผ ํ๋์ฉ ์ฒ๋ฆฌํ๋ฉฐ ๋์ํ๋ ์ด๊ธฐ๋ ์ซ์๋ก ๋ณํํ๋ค.
2. ๋ณํ ๊ท์น:
- 2 -> 0
- 0 -> 5
- 5 -> 2
3. ๋ณํ ๊ณผ์ :
- ๊ฐ ๋ฌธ์๋ฅผ ํ๋์ฉ ์ฝ์ด ๋ณํ ๊ท์น์ ๋ฐ๋ผ ์ ๋ฌธ์์ด์ ์์ฑ.
4. ์ ์ฝ ์กฐ๊ฑด:
- ์ ๋ ฅ ๋ฌธ์์ด์ ๊ธธ์ด๋ ์ต๋ 100์ผ๋ก, ๋ฃจํ๋ฅผ ๋๋ฉฐ ๋ณํํด๋ ํจ์จ์ ์.
์์ฌ ์ฝ๋
Input: rsp(string)
Output: result(string)
1. Initialize result as an emtry string
2. For each character ch in rsp :
a. If ch == '2', apped '0' to result.
b If ch == '0', apped '5' to result.
c If ch == '5', apped '2' to result.
2. Return result.
Solution ๐ก
public class RSPGame {
public String solution(String rsp) {
//๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ StringBuilder์ฌ์ฉ
StringBuilder result = new StringBuilder();
//๋ฌธ์์ด์ ๊ฐ ๋ฌธ์ ์ฒ๋ฆฌ
for (char ch : rsp.toCharArray()) {
if (ch == '2') {
result.append('0';)
} else if (ch == '0') {
result.append('5');
} else if (ch == '5') {
result.append('2');
}
}
//๋ณํ๋ ๋ฌธ์์ด ๋ฐํ
return result.toString();
}
}
์ฝ๋ ์ค๋ช
1. ์ ๋ ฅ ์ฒ๋ฆฌ:
• rsp.toCharArray()๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ณํ.
• ๊ฐ ๋ฌธ์๋ฅผ ์ํํ๋ฉฐ ๋ณํ ๊ท์น์ ๋ฐ๋ผ ์ฒ๋ฆฌ.
2. ๋ฌธ์ ๋ณํ:
• if-else ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ๋ฌธ์์ ๋ฐ๋ผ ๋ณํ๋ ๋ฌธ์๋ฅผ StringBuilder์ ์ถ๊ฐ.
3. ๊ฒฐ๊ณผ ๋ฐํ:
• StringBuilder๋ ๋ฌธ์์ด์ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ.
• toString()์ผ๋ก ์ต์ข ๋ฌธ์์ด์ ๋ฐํ.