Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- JS null undefined
- JS value속성
- JS 삼항연산
- JS appendChild
- JS prompt
- JS form action
- JS localStorage
- HTML기초
- JS form
- JS redirection
- CSS속성정리
- JS classList
- JS append
- JS 스코프
- JS 연산
- JS 함수
- JS 타이머기능
- js 변수
- JS setInterval
- JS 기초
- JS setTimeout
- JS typeof연산자
- JS clearInterval
- CSS기초
- git 협업셋팅
- JS 데이터타입
- JS 화살표함수
- JS 형변환
- JS 숫자
- JS preventDefault
Archives
공부기록용
JavaScript 문법 종합 2주차(숙제) 본문
Q. 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
제한 조건
- strings는 길이 1 이상, 50이하인 배열입니다.
- strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
- strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
- 모든 strings의 원소의 길이는 n보다 큽니다.
- 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.
입출력 예
function solution(strings, n){
var answer = [ ];
// 문자열strings의 i_인덱스 번호 요소의 n번째 글자
// 1. 문자열의 가장 앞 부분에 n번째 글자를 붙인 배열 만들기(for문 사용)
for (var i = 0; i<strings.length; i++){
strings[i] = strings[i][n] + strings[i]; // car -> a + car = acar이 되는것
}
console.log(strings);
return answer;
}
solution(["sun", "bed", "car"], 1);
// [ 'usun', 'ebed', 'acar' ]
function solution(strings, n){
var answer = [ ];
for (var i = 0; i<strings.length; i++){
strings[i] = strings[i][n] + strings[i];
}
// 2. 해당 배열을 사전순으로 정렬(sort)
// sort_문자열의 유니코드 코드 포인트를 따른 오름차순으로 정렬
strings.sort();
console.log(strings);
return answer;
}
solution(["sun", "bed", "car"], 1);
// [ 'acar', 'ebed', 'usun' ]
function solution(strings, n) {
var answer = [];
for (var i = 0; i < strings.length; i++) {
strings[i] = strings[i][n] + strings[i];
}
strings.sort();
// 3. 앞글자 제거 후 리턴
for (var j = 0; j < strings.length; j++) {
strings[j] = strings[j].replace(strings[j][0], "");
answer.push(strings[j]);
// replace_문자열 치환 : replace([기존][바꾸고싶은])
// 1의 과정에서 n번째 글자가 추가되기 전의 요소들 = i
// 추가된 요소들 j,
// j들의0번째글자+맨첫글자들을 "(공백)"을 기재함으로써 삭제(하고 싶다는 의미가 됨)
// push_배열의 끝에 요소를 추가(처음 지정한 answer에 새로운 strings[j]가 들어감)
}
console.log(answer);
return answer;
}
solution(["sun", "bed", "car"], 1);
// [ 'car', 'bed', 'sun' ]
function solution(strings, n) {
var answer = [];
// 1. 문자열의 가장 앞 부분에 n번째 인덱스 글자를 붙인 배열 만들기(for문 사용)
for (var i = 0; i < strings.length; i++) {
strings[i] = strings[i][n] + strings[i]; // car -> a + car = acar이 되는것
}
// 2. 해당 배열을 사전순으로 정렬(sort)
strings.sort();
// 3. 앞글자 제거 후 리턴
for (var j = 0; j < strings.length; j++) {
strings[j] = strings[j].replace(strings[j][0], "");
answer.push(strings[j]);
}
return answer;
}
["abce", "abcd", "cdx"]
2
return 값 abcd, abce, cdx
function solution(strings, n) {
strings.sort((a, b) => {
return a[n]==b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n]);
});
return strings;
}
const map = new Map();
for (let i = 0; i < arr.length; i++) {
map.set(arr[i][n], arr[i]);
}
console.log([...map].sort());
'📚강의록📚 > 스파르타)Javascript' 카테고리의 다른 글
JavaScript 문법 종합 3주차(데이터타입_심화2/불변객체예시) (1) | 2023.06.13 |
---|---|
JavaScript 문법 종합 3주차(데이터타입_심화1) (0) | 2023.06.13 |
JavaScript 문법 종합 2주차(Map&Set) (0) | 2023.05.24 |
JavaScript 문법 종합 2주차(일급 객체로서의 함수💫) (0) | 2023.05.24 |
JavaScript 문법 종합 2주차(ES6 문법) (0) | 2023.05.24 |
Comments