본문 바로가기
algorithm

[프로그래머스]가위 바위 보 - java, python

by skysline 2023. 3. 3.
반응형

문제 설명

가위는 2 바위는 0 보는 5로 표현합니다.

가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때,

rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.

입출력 예

입출력 예 #1

  • "2"는 가위이므로 바위를 나타내는 "0"을 return 합니다.

입출력 예 #2

  • "205"는 순서대로 가위, 바위, 보이고 이를 모두 이기려면 바위, 보, 가위를 순서대로 내야하므로 “052”를 return합니다.

java code

class Solution {
    public String solution(String rsp) {
        String answer = "";
        for (char item:rsp.toCharArray()) {
            if( item == '2'){
                answer += '0';
            }if( item == '0'){
                answer += '5';
            }if( item == '5'){
                answer += '2';
            }
        }
         return answer;
    }
}
다른풀이
class Solution {
    public String solution(String rsp) {
        return Arrays.stream(rsp.split(""))
        	.map(s -> s.equals("2")?"0": s.equals("0")?"5":"2")
            	.collect(Collectors.joining()));
    }
}

stream method 삼항 연산자 를 사용한 코드 

collect()는 Stream의 데이터를 변형 등의 처리를 하고 원하는 자료형으로 변환해 줍니다.

너무 다양하다 ....

python code

def solution(rsp):
    answer = ''
    for i in rsp:
        if i =="2":
            answer+="0"
        if i =="0":
            answer+="5"
        if i =="5":
            answer+="2"
    return answer
다른풀이
def solution(rsp):
	answer = {"2":"0", "0":"5", "5":"2"}
    return "".join(answer[i] for i in rsp)

반응형

댓글