문제 : 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.
한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.
function solution(number) {
let answer = 0;
for (let i = 0; i < number.length; i++) {
for (let j = i + 1; j < number.length; j++) {
for (let k = j + 1; k < number.length; k++) {
if (number[i] + number[j] + number[k] === 0) {
answer++;
}
}
}
}
return answer;
}
🗒️코멘트 : NULL
문제 : 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
제한 조건
function solution(strings, n) {
strings.sort((a,b) => {
if(a[n] < b[n]) {
return -1;
} else if (a[n] > b[n]){
return 1;
} else if (x < y){
return -1
} else if (x > y){
return 1
} return 0
})
return strings
}
🗒️코멘트 : NULL
문제 : 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.
function solution(array, commands) {
const answer = [];
commands.forEach(a =>{
let curtailed = array.slice(a[0]-1,a[1]).sort((a,b)=> a-b);
answer.push(curtailed[a[2]-1])
})
return answer;
}
🗒️코멘트 : Array.sort()
와 Array.sort((a,b) => a-b)
의 차이점을 명확하게 알자