포스트

가위 바위 보

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

문제

  • 문제 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.HashMap;
import java.util.Map;

public class Solution {
    public static String solution(String rsp) {
        StringBuilder result = new StringBuilder();
        
        // 이길 수 있는 경우의 문자열을 저장한 Map
        Map<Character, Character> winMap = new HashMap<>();
        winMap.put('0', '5'); // 바위(0)를 이기는 경우
        winMap.put('2', '0'); // 가위(2)를 이기는 경우
        winMap.put('5', '2'); // 보(5)를 이기는 경우

        // 주어진 rsp 문자열을 순회하여 이길 수 있는 경우의 문자열을 만든다.
        for (int i = 0; i < rsp.length(); i++) {
            result.append(winMap.get(rsp.charAt(i)));
        }

        return result.toString();
    }

    public static void main(String[] args) {
        String rsp1 = "2";
        String rsp2 = "205";

        System.out.println(solution(rsp1)); // 출력: "0"
        System.out.println(solution(rsp2)); // 출력: "052"
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;

class Solution {
    public String solution(String rsp) {
        StringBuilder result = new StringBuilder();

        for (char c : rsp.toCharArray()) { // 주어진 문자열을 반복하면서 각각의 값을 이기는 값을 찾아 문자열에 추가
            if (c == '2') {
                result.append('0'); // 가위(2)는 바위(0)를 이김
            } else if (c == '0') {
                result.append('5'); // 바위(0)는 보(5)를 이김
            } else if (c == '5') {
                result.append('2'); // 보(5)는 가위(2)를 이김
            }
        }

        return result.toString();
    }
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.