Coding Practice/프로그래머스 Lv.0
수 조작하기 1
ailen22
2024. 1. 26. 23:12
[문제]
정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.
- "w" : n이 1 커집니다.
- "s" : n이 1 작아집니다.
- "d" : n이 10 커집니다.
- "a" : n이 10 작아집니다.
위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요.
n | control | result |
0 | "wsdawsdassw" | -1 |
- 0 → 1 → 0 → 10 → 0 → 1 → 0 → 10 → 0 → -1 → -2 → -1
[답]
class Solution {
public int solution(int n, String control) {
int answer = 0;
//String을 char로 변환
char[] con = control.toCharArray();
//control의 길이가 정해지지 않으므로 ()사용
for(int i = 0; i < control.length(); i++) {
//w일때 +1저장
if(con[i] == 'w'){
n += 1;
} else if(con[i] == 's') {
n -= 1;
} else if(con[i] == 'd') {
n += 10;
} else {
n -= 10;
}
}
answer += n;
return answer;
}
}
※ toCharArray() : Char[ ] char배열로 바꿔줌
[다른사람 풀이]
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;
}
}