function solution(strings, n) {
for (let i = 0; i < strings.length; i++) {
strings[i] = strings[i].split("");
strings[i].unshift(strings[i].splice(n, 1));
strings[i] = strings[i].join("");
}
strings.sort();
for (let i = 0; i < strings.length; i++) {
strings[i] = strings[i].split("");
strings[i].splice(n, 0, strings[i].shift());
strings[i] = strings[i].join("");
}
return strings;
}
1번 Splice(n , m)
배열의 n번째부터 m개를 삭제하고 삭제된 값을 리턴한다.
2번 Splice(n, m , o)
배열의 n번째부터 m개 삭제하고 그 사이에 o를 삽입한다.
처리흐름
strings의 길이 만큼 i를 돌리게 되는데 strings배열의 i번째 배열을 ""로 하나하나 문자열을 쪼갠다. (split)
쪼개진 문자들 중 n번째에 있는 문자를 없애고(splice) 그 문자를 리턴하여 바로 앞으로 옮긴다. (unshift)
join으로 다시 문자들을 붙여 문자열로 만든다.
반복 수행 후 문자들을 오름차순으로 정렬한다.
정렬된 문자열들을 split으로 문자하나하나로 다시 쪼개고 쪼갠 문자의 n번부터 0개를 제거하고 그 사이에 shift를 통해 맨 앞 요소를 제거한 문자를 리턴하여 사이에 삽입한다. (splice)
join으로 다시 문자들을 붙여 문자열로 만든다.
'일반 학습 > 코딩 테스트' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (0) | 2022.03.04 |
---|---|
[JavaScript] 재귀함수로 최대공약수 최소공배수 찾기 (0) | 2022.03.03 |
[JavaScript] 키패드를 배열로 만들어 키값간 거리 찾기 (0) | 2022.02.23 |
TOY26: LSCS 연속된 부분 배열 (0) | 2021.11.15 |
TOY19: LPS (0) | 2021.11.04 |
댓글