Leetcode Java DI String Match
업데이트:
문제
코드
class Solution {
public int[] diStringMatch(String s) {
int length = s.length();
int left = 0;
int right = length;
int[] result = new int[length + 1];
for (int i = 0; i < length; i++) {
result[i] = s.charAt(i) == 'I' ? left++ : right--;
}
result[s.length()] = left;
return result;
}
}
결과
설명
- s를 이용하여 아래의 규칙을 만족하는 0부터 s의 길이까지 범위의 값으로 구성된 배열을 구성하는 문제이다.
- s의 i번째 문자가 ‘I’인 경우, perm[i] < perm[i + 1]을 만족한다.
- s의 i번째 문자가 ‘D’인 경우, perm[i] > perm[i + 1]을 만족한다.
- 문제 풀이에 필요한 변수를 정의한다.
- length는 s의 길이를 저장한 변수이다.
- left와 right는 문자열의 탐색에 필요한 변수로, 0과 length로 초기화한다.
- result는 규칙을 만족하는 배열을 구성하기 위한 변수로, $length + 1$ 크기의 정수 배열로 초기화한다.
- 0부터 length 미만까지 i를 증가시키며 아래를 수행한다.
- s의 i번째 문자가 ‘I’인 경우, result의 i번째 위치에 left를 넣고 left를 증가신다.
- s의 i번째 문자가 ‘D’인 경우, result의 i번째 위치에 right를 넣고 right를 감소시킨다.
- result의 마지막 위치에 left를 넣어주고, 결과가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기