프로그래머스 코딩테스트 입문 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 쓸 수 있었구나...ㅠㅠ 더 고민해보기!
'코딩테스트 스터디' 카테고리의 다른 글
코딩테스트 연습 - 주사위의 개수 (JAVA) (1) | 2023.03.02 |
---|---|
코딩테스트 연습 - 대문자와 소문자 (JAVA) (0) | 2023.03.02 |
코딩테스트 연습 - 개미 군단 (JAVA) (1) | 2023.03.01 |
코딩테스트 연습 - 공 던지기 (JAVA) (0) | 2023.03.01 |
코딩테스트 연습 - 한 번만 등장한 문자(JAVA) (0) | 2023.02.28 |