코딩테스트 32일차
문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
function solution(strings, n) {
var answer = strings.sort(function(a, b) {
// 1. 인덱스 n의 문자를 기준으로 정렬
if (a[n] > b[n]) return 1;
if (a[n] < b[n]) return -1;
// 2. 인덱스 n의 문자가 같은 경우 사전순으로 정렬
if (a > b) return 1;
if (a < b) return -1;
return 0;
});
return answer;
}
✏️풀이
strings 리스트를 인덱스 n의 문자를 기준으로 정렬합니다. sort() 함수를 사용하며, 정렬 기준을 비교하는 콜백 함수를 전달합니다.
sort() 함수는 배열을 정렬하는 JavaScript 내장 함수입니다.
정렬 기준을 비교하는 콜백 함수는 두 개의 인자 a와 b를 받습니다.
a와 b는 비교되는 두 개의 원소입니다.
비교 함수 내에서 두 문자열을 비교하고 정렬 순서를 반환합니다.
먼저, 인덱스 n의 문자를 비교하여 오름차순으로 정렬합니다.
a[n]이 b[n]보다 크다면 1을 반환하여 a를 b보다 뒤에 위치시킵니다.
a[n]이 b[n]보다 작다면 -1을 반환하여 a를 b보다 앞에 위치시킵니다.
인덱스 n의 문자가 같은 경우, 사전순으로 정렬합니다.
a가 b보다 크다면 1을 반환하여 a를 b보다 뒤에 위치시킵니다.
a가 b보다 작다면 -1을 반환하여 a를 b보다 앞에 위치시킵니다.
만약 a와 b가 같다면 0을 반환하여 순서를 변경하지 않습니다.
정렬된 strings 리스트를 반환합니다.
두 정수 사이의 합
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
function solution(a, b) {
var answer = 0;
for (var i = Math.min(a, b); i <= Math.max(a, b); i++) {
answer += i;
}
return answer;
}
✏️풀이
answer 변수를 0으로 초기화합니다. 이 변수는 정수의 합을 저장하는 변수입니다.
for 루프를 사용하여 a와 b 사이에 속한 모든 정수를 순회합니다.
i 변수를 Math.min(a, b)로 초기화하여 더 작은 값으로 설정합니다.
i가 Math.max(a, b)보다 작거나 같은 동안 반복합니다.
i를 1씩 증가시키면서 루프를 순회합니다.
각 순회마다 answer에 i 값을 더합니다. 즉, answer += i는 answer에 i를 더하는 것을 나타냅니다.
for 루프가 종료되면 모든 정수를 더한 결과가 answer에 저장됩니다.
answer를 반환합니다. 이는 두 정수 a와 b 사이에 속한 모든 정수의 합을 나타냅니다.