Coding Test

(CodingTest) : 10일차 가위 바위 보

Santino 2025. 2. 14. 23:45

 

 

 

 

1) 내가 쓴 답 (정답 / 비효율적)

class Solution {
    public String solution(String rsp) {
        String answer = ""; // 중복 선언 제거
        
        String[] str = rsp.split(""); // "205" -> ["2", "0", "5"]
        
        for (String s : str) { 
            int rspInt = Integer.valueOf(s); // "2" -> 2
            
            if (rspInt == 2) {
                answer += "0";
            } else if (rspInt == 0) {
                answer += "5";
            } else if (rspInt == 5) {
                answer += "2"; // 세미콜론 추가 ✅
            }
        }       
        return answer;
    }
}

 

2) 다른 방법 (정답 / 효율적)

# 모르거나 헷갈린 부분

- rsp.toCharArray() 를 사용하면, 문자열을 문자 배열로 변환해줌

- StringBuilder 변수인 answer.append()를 활용하면, String을 반복 생성하지 않고 추가 가능

  answer.append('0')

class Solution {
    public String solution(String rsp) {
        StringBuilder answer = new StringBuilder();
        
        for (char c : rsp.toCharArray()) { // 문자열을 문자 배열로 변환
            if (c == '2') {
                answer.append('0');
            } else if (c == '0') {
                answer.append('5');
            } else if (c == '5') {
                answer.append('2');
            }
        }