Develop
[프로그래머스] 수 조작하기1 본문
문제
내풀이
class Solution {
public int solution(int n, String control) {
for(char c : control.toCharArray()){
switch(c){
case 'w' :
n+=1;
break;
case 's' :
n-=1;
break;
case 'd' :
n+=10;
break;
case 'a':
n-=10;
break;
default :
break;
} // switch-case문
} // 향상된 for문
return n;
}
}
다른 풀이1
class Solution {
public int solution(int n, String control) {
int answer = n;
for(char ch : control.toCharArray()) {
switch(ch) {
case 'w': answer += 1; break;
case 's': answer -= 1; break;
case 'd': answer += 10; break;
case 'a': answer -= 10; break;
default:break;
}
}
return answer;
}
}
느낀점
문제를 푸는 로직은 같으나
나는 enter를 많이 쳐서 줄 수가 긴 반면에 이분은 한줄로 적었다
이게 훨씬 깔끔하고 읽기 쉬운 방법인것같다
다른 풀이2
class Solution {
public int solution(int n, String control) {
return control.chars().reduce(n, (acc, c) -> acc + (c == 'w' ? 1 : c == 's' ? -1 : c == 'd' ? 10 : -10));
}
}
느낀점
stream과 람다식을 이용해서 푼 코드
따로 공부를 하긴 했지만 막상 코드를 작성하려면 시간이 많이 걸리는 형태의 코드,,
여러개의 조건이 있을 시 3항을 쓰면 복잡해보이는데 문제가 간단해서 그런지
엄청 복잡해보이진 않는다.
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 수열과 구간 쿼리2 (1) | 2024.01.27 |
---|---|
[프로그래머스] 수 조작하기2 (0) | 2024.01.26 |
[프로그래머스] 마지막 두 원소 (0) | 2024.01.24 |
[프로그래머스] 카운트 다운 (0) | 2024.01.23 |
[프로그래머스] 카운트 업 (0) | 2024.01.21 |