본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [가위 바위 보] 자바 Lv.0

by tripleup 2023. 5. 30.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 가위 바위 보

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


해결 과정

 

먼저 rsp를 한 글자씩 나누어 String 배열 s에 넣어준다

 

그리고 반복문과 조건문을 사용하여 

만약 s의 원소가 각각 0, 2, 5 와 같을 경우 그에 대비하여 이길 수 있는 경우인 5,0,2를 answer 문자열에 추가해준다.

 

같을 경우를 찾기 위해 배열.equals를 사용한다.

 

소스 코드

 

class Solution {
    public String solution(String rsp) {
        String answer = "";
        
        String[] s = rsp.split("");
        
        for (int i = 0; i<rsp.length(); i++) {
            if (s[i].equals("0")) {
                answer += "5";
            } else if (s[i].equals("2")) {
                answer += "0";
            } else if (s[i].equals("5")) {
                answer += "2";
            }
        }
        return answer;
    }
}

 

(또 다른 풀이)

class Solution {
    public String solution(String rsp) {
        String answer = "";
        
        for (int i = 0; i<rsp.length(); i++) {
            if (Integer.valueOf(rsp.charAt(i)) - 48 == 2) {
                answer += "0";
            }else if (Integer.valueOf(rsp.charAt(i)) - 48 == 5) {
                answer += "2";
            }else {
                answer += "5";
            }
        }
        return answer;
    }
}

 

charAt(i)를 이용하여 Integer으로 형변환해주고 아스키코드이므로 -48을 통해 값을 맞춰준다

그리고 해당하는 값에 따라 answer에 문자를 추가해주면된다.

 


728x90
반응형

댓글