가위 바위 보

Wook·2024년 8월 26일

🧩코딩테스트

목록 보기
22/46
post-thumbnail

문제

가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.

조건

  • 0 < rsp의 길이 ≤ 100
  • rsp와 길이가 같은 문자열을 return 합니다.
  • rsp는 숫자 0, 2, 5로 이루어져 있습니다.

예시

rspresult
"2""0"
"205""052"

풀이

  • 각 숫자에 대응하는 숫자를 문자열로 반환해야 함
  • 주어진 rsp는 하나의 문자열이기 때문에 경우를 나누기 쉽게 character 배열로 변환
  • character 배열의 요소를 하나씩 돌면서 미리 만들어놓은 빈 StringBuilder에 대응하는 문자열을 추가
  • 또는 String의 replaceAll() 메서드를 사용하여 rsp 문자열의 숫자(2, 0, 5)를 하나씩 모두 (0, 5, 2)로 교체
  • 이때, 제대로 바꾼 값을 또 바꾸는 경우가 생길 수 있으므로 숫자(2, 0, 5) 중 하나는 무관한 숫자로 변경 후 마지막에 변경

코드

public class Solution{
	public String sol(String rsp) {
        StringBuilder answer = new StringBuilder();
        char[] arr = rsp.toCharArray();

        for (char c : arr) {
            switch (c) {
                case '2':
                    answer.append("0");
                    break;
                case '5':
                    answer.append("2");
                    break;
                case '0':
                    answer.append("5");
                    break;
            }
        }
        return answer.toString();
    }
    
    public String sol2(String rsp){
    	return rsp.replaceAll("2", "9").replaceAll("5", "2")
          		  .replaceAll("0", "5").replaceAll("9", "0");
    }
}
profile
Keep going

0개의 댓글