배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
2에서 나온 배열의 3번째 숫자는 5입니다.
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.
function solution(array, commands) {
let answer = [];
for (let command of commands){
let sliceArr = array.slice(command[0]-1,command[1]);
let sortArr = sliceArr.sort((a,b)=>{return a-b});
answer.push(sortArr[command[2]-1]);
}
return answer;
}
splice & slice & split
- splice
- 기존의 배열을 ctrl x, v하는 느낌
- 계속 헷갈리니까 P피자는 먹으면 없어진다고 외워야지- slice
- 기존 배열을 ctrl c, v하는 느낌
- 복사해도 원래 값은 남아있으니까
- split 문자열을 배열로 담아오기
기준이 될 단위 정해야함
-replace(a,b) 부분 수정
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.
function solution(numbers) {
var answer = numbers.sort().reverse().join('');
return answer;
}
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
function solution(s) {
let answer = "";
if (s.length % 2 == 0) {
answer = s[s.length / 2 - 1] + s[s.length / 2];
} else {
answer = s[Math.floor(s.length / 2)];
}
return answer;
}
Math.floor 소수점 자르기
바닥 쓸기
Math.ceil 올림
천장으로 올리기
Math.round 가장 비슷한 수 반환
대략 제일 비슷한거
Math.floor 응용
랜덤 숫자 가져오기
=> Math.floor(Math.random( )*10)+1
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
function solution(seoul) {
let answer = `김서방은 ${seoul.indexOf('Kim')}에 있다`
return answer;
}
indexOf() : 해당 값의 인덱스 호출, 같은 값이 여러 개라면 첫 번째 값의 인덱스가 호출됨
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
function solution(arr) {
let total = arr.reduce((sum,crr) => sum + crr, 0)
let answer = total / arr.length;
return answer;
}
reduce()
- 배열 안의 값을 단일 값으로 만들어줘서 reduce인가보다
-옵션으로 초기값을 설정할 수 있는데, 없으면 배열의 첫번째 인덱스로 설정됨