Q. 정수 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 함수를 완성해 주세요.
control 문자열을 하나씩 분리하여 처리하기 위해 control.split(""); 사용 했다.
class Solution {
public int solution(int n, String control) {
int answer = n;
String[] control_list = control.split("");
for(int i = 0; i<control_list.length; i++){
if(control_list[i].equals("w")){
answer += 1;
}else if(control_list[i].equals("s")){
answer -= 1;
}else if(control_list[i].equals("d")){
answer += 10;
}else if(control_list[i].equals("a")){
answer -= 10;
}
}
return answer;
}
}
Q. 문제 설명
정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다.
"w" : 수에 1을 더한다.
"s" : 수에 1을 뺀다.
"d" : 수에 10을 더한다.
"a" : 수에 10을 뺀다.
그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다.
주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요.
for문 시작 인덱스를 1로 설정해야 첫번째 원소와 그 전 원소를 비교할 수 있다.
class Solution {
public String solution(int[] numLog) {
String answer = "";
for(int i = 1; i<numLog.length; i++){
if(numLog[i]-numLog[i-1] == 1){
answer += "w";
}else if(numLog[i]-numLog[i-1] == -1){
answer += "s";
}else if(numLog[i]-numLog[i-1] == 10){
answer += "d";
}else if(numLog[i]-numLog[i-1] == -10){
answer += "a";
}
}
return answer;
}
}