코딩테스트/프로그래머스 입문

[ 프로그래머스 입문 ] LV0 가위바위보

Adose 2025. 6. 16. 11:41

📚 문제 설명

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

✅ 제한사항

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

💻 구현 코드

public String solution(String rsp) {
    StringBuilder answer = new StringBuilder();
    Map<Character, String> winner = new HashMap<>();


    //이기는 조건만 저장
    winner.put('2',"0");
    winner.put('0',"5");
    winner.put('5',"2");

    for(int i=0;i<rsp.length();i++){
        answer.append(winner.get(rsp.charAt(i)));
    }

    return answer.toString();
}

📌 구현코드 해설

  1. map 에 해당 조건이 이기는 경우만 저장한다.
  2. 반복문을 통하여, 해당 조건이 나왔을때 map에서 대응되는 값을 찾아와 append를 해주었다. 

🍏 회고 / 새롭게 알게 된 점

이번에 구현하면서, charAt 이런 간단한 메서드들이 갑자기 생각이 안나고 그런다 ..^,^ 

배열로 변환이나, split 같은 간단 메서드를 정리할 필요성을 느꼈다.