public static String solution(String rsp) {
String answer = "";
for(int i = 0; i < rsp.length(); i++)
{
if(rsp.charAt(i) == '2')
{
answer += "0";
}
else if (rsp.charAt(i) == '0')
{
answer += "5";
}
else
{
answer += "2";
}
}
return answer;
}
내 풀이
근데 replace로 어떻게 할 수 있을 것 같은데 생각이 안나서 이렇게 했다.
import java.util.HashMap;
import java.util.Map;
class Solution {
public String solution(String rsp) {
//2 - 가위, 0 - 바위, 5 - 보
Map<String, String> winNumbers = new HashMap<>();
winNumbers.put("2", "0");
winNumbers.put("0", "5");
winNumbers.put("5", "2");
StringBuilder answer = new StringBuilder();
for (int i = 0; i < rsp.length(); i++) {
answer.append(winNumbers.get(rsp.substring(i, i+1)));
}
return answer.toString();
}
}
Juhee Han 님의 코드.
맨날 일할 때 hashmap 썼는데도 생각도 못했다..
가위바위보에 이기는 짝 끼리 맞춰서 반환하는 거니까 저렇게 하면 되겠구나!!
public static String solution(String rsp) {
String answer = "";
answer = rsp.replace("2", "A")
.replace("0", "B")
.replace("5", "C");
// 임시 치환값을 최종 결과값으로 변환
return answer.replace("A", "0")
.replace("B", "5")
.replace("C", "2");
}
replace로도 풀어보기
임시값을 두지 않으면 다음 replace에서 다시 원래 숫자로 치환되므로 (2->5->2) 임시값을 중간에 끼워준다.
'코테 > java' 카테고리의 다른 글
[프로그래머스][java] lv 2 올바른 괄호 (1) | 2024.11.20 |
---|---|
[프로그래머스][java] lv 2 혼자 놀기의 달인 (0) | 2024.11.19 |
[프로그래머스][java] lv 0 숨어있는 숫자의 덧셈(1) (0) | 2024.11.18 |
[프로그래머스][java] lv 0 세균 증식 (0) | 2024.03.29 |
[프로그래머스][java] lv 0 제곱수 판별하기 (0) | 2024.03.28 |