본문 바로가기

코딩테스트 스터디

코딩테스트 연습 - 가위 바위 보 (JAVA)

프로그래머스 코딩테스트 입문 0단계 문제입니다

https://school.programmers.co.kr/learn/courses/30/lessons/120839

📢 문제 설명

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

 

⭕ 정답 코드

1. Stream

class Solution {
    public String solution(String rsp) {
        return Arrays.stream(rsp.split("")) //문자열로 Stream 생성
                .map(m -> m.equals("2") ? "0" : m.equals("0") ? "5" : "2") //2이면 0, 0이면 5고 아니면 2
                .collect(Collectors.joining()); //Stream to String
    }
}
  • 문자열로 스트림을 만들고
  • map에서 삼항연산자를 중첩해 답을 만든다
  • Collectors.joining()으로 문자열을 만들어 반환

2. switch문

class Solution {
    public String solution(String rsp) {
    
        String answer = "";
        for(char r : rsp.toCharArray()){
            switch(r){
                case '2':
                    answer += "0";
                    break;
                case '0':
                    answer += "5";
                    break;
                case '5':
                    answer += "2";
                    break;
            }
        }
        return answer;
    }
}


    

✅ 회고

... Stream 쓸 수 있었구나...ㅠㅠ 더 고민해보기!