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()์œผ๋กœ ์ตœ์ข… ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜.


Reference ๐Ÿ“„

+ Recent posts