반응형
문제 설명
정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다.
- "w" : 수에 1을 더한다.
- "s" : 수에 1을 뺀다.
- "d" : 수에 10을 더한다.
- "a" : 수에 10을 뺀다.
그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다.
즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다.주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요.
입출력 예
"수 조작하기 1" 문제의 control을 구하는 문제라고 이해할 수 있습니다.
numLog result [0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1] "wsdawsdassw"
문제를 이해하는데 더 오랜 시간이 걸렸다
배열문제에 더 약해서 '배열'이라는 단어가 나오면 머리가 아득해지는게 있다
이번 문제도 처음에 수 조작하기처럼 풀면 되는 줄 알고 일단 코드를 짰다가 문제를 다시 읽어보니 그게 아니어서
다 지우고 다시 풀었다
*내가 해결한 코드
배열의 마지막 항목 : numLog[i]
그 전 항목 : numLog[i-1]으로 작성해서 수에 1이 더해지는 경우/수에 1을 빼는 경우/수에 10을 더하는 경우/수에 10을 빼는 경우로
해당 단어를 찾아내는 방식으로 만들어주었다
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;
}
}
반응형
'코테 준비(with 프로그래머스)' 카테고리의 다른 글
프로그래머스 day6, Java - 수열과 구간 쿼리3 (1) | 2023.11.15 |
---|---|
프로그래머스 day6 - 마지막 두 원소 (1) | 2023.11.11 |
프로그래머스 day6 - 수 조작하기1 (0) | 2023.11.10 |
프로그래머스 day5 - 등차수열의 특정한 항만 더하기 (0) | 2023.11.07 |
프로그래머스 day5 - 코드 처리하기 (0) | 2023.11.07 |