🚩 문제 주소
📄 접근 방법
그리디
더보기
1. 주어진 문자열의 길이 + 1 만큼의 0부터 증가하는 숫자 배열을 생성합니다.
2. 문자열을 순회하는데, 문자열[인덱스]가 I 라면, 만들어 놨던 숫자 배열에서 shift하여 정답배열에 넣어주고,
아니라면 pop하여 정답배열에 넣어줍니다.
- I일 경우 최솟값을, D일 경우 최댓값을 넣어주면 된다고 생각했습니다.
3. 숫자 배열에 남은 하나의 원소를 정답배열에 넣어줍니다.
4. 정답배열을 반환합니다.
👨💻 나의 코드
var diStringMatch = function(s) {
const perm = [];
let i = 0;
const nums = Array.from({length: s.length+1}, ()=>i++);
for (let i=0; i<s.length; i++) {
s[i] === 'I' ? perm.push(nums.shift()) : perm.push(nums.pop());
}
perm.push(nums.pop());
return perm;
};
'Problem Solving > LeetCode' 카테고리의 다른 글
[LeetCode / JS] Lemonade Change - Easy (0) | 2023.03.26 |
---|---|
[LeetCode / JS] 455. Assign Cookies - Easy (0) | 2023.03.23 |