🌟 = 내가 생각한 난이도있는 풀이
1. 피자 나눠 먹기 (1)
2. 최대값 만들기
3. 배열 자르기
4. 짝수 홀수 개수
5. 삼각형의 완성조건
6. 배열 뒤집기
7. 특정 문자 제거하기
function solution(n) {
var answer = 0;
if (n % 7 == 0) {
answer = Math.floor(n / 7)
} else if (n % 7 != 0) {
answer = Math.floor(n / 7) + 1
}
return answer;
}
function solution(n) {
return Math.ceil(n / 7)
}
function solution(n) {
return n % 7 === 0 ? n / 7 : parseInt(n / 7) + 1;
}
function solution(numbers) {
numbers.sort(function(a, b) {
return b - a;
});
return numbers[0] * numbers[1];
}
b - a
, 오름차순은 a - b
라는 법칙으로 기억하자.function solution(numbers) {
numbers.sort((a, b) => b - a);
return numbers[0] * numbers[1];
}
function solution(numbers, num1, num2) {
var answer = [];
answer = numbers.slice(num1, num2 + 1);
return answer;
}
slice(from, to)
인데 to의 값은 포함되지않고 앞에서 멈춘다. 그래서 위 문제엔 +1를 하여 to값까지 포함시켰다.function solution(numbers, num1, num2) {
var answer = [];
for (let i = num1; i < num2+1; i++) {
answer.push(numbers[i])
}
return answer;
}
function solution(num_list) {
var answer = [0, 0];
for (let i = 0; i < num_list.length; i++) {
if(num_list[i] % 2 === 0) {
answer[0]++;
} else {
answer[1]++;
}
}
return answer;
}
var answer = []
이 처음 기본값이었는데 [0, 0]
으로 바꿔줬다..function solution(num_list) {
return [
num_list.filter((num) => num % 2 === 0).length,
num_list.filter((num) => num % 2 === 1).length // 2 !== 0 도 사용가능하다! 둘 다 홀수
];
}
배열.filter((요소) => 조건)
주어진 요소를 조건에 맞게 재구성해서 배열한다!function solution(num_list) {
var answer = [0,0];
// 짝수, 홀수 배열 저장소
for(let a of num_list){
// num_list에 있는 배열을 전부 a로 나타내기
answer[a % 2] += 1
// answer[a % 2] = answer[a % 2] + 1
}
return answer;
}
var answer = [0, 0]
를 선언했다고 왜 [0]에 짝수가 들어가고 [1]에 홀수가 들어가는거지??answer[a % 2] += 1
이 부분이었는데 너무 바보였다 식을 풀어서 쓰면..answer[a % 2] = answer[a % 2] + 1
이렇게 되는데 answer[a % 2]
는 결국 무조건 0 아니면 1의 값을 갖게 되니function solution(sides) {
var answer = 0;
sides = sides.sort((a, b) => a - b)
// sides의 배열 요소를 오름차순 !
answer = sides[0] + sides[1] > sides[2] ? 1 : 2;
// 오름차순으로인해 [0]부터 작은값 !
return answer;
}
sides[0] + sides[1] > sides[2]
조건 외의 경우는 전부 2로 출력되는것이지,,! 더 작든 같든function solution(sides) {
const [long, a, b] = sides.sort((a, b) => b - a);
return long < a + b ? 1 : 2
}
[long, a, b]
로 배열 순서를 지정하고 내림차순을 했는데 오름차순도 상관없다 !function solution(num_list) {
return num_list.reverse()
}
배열.reverse();
처음에 계속 작동을 안해서 보니까 스펠링을 reverce로 치고 있었다 기억하자 ;;function solution(num_list) {
var answer = [...num_list];
return answer.reverse(); // answer = [...num_list].reverse(); 와 같은 의미 !~!~!~!
}
function solution(num_list) {
var answer = [];
for(let i = num_list.length - 1; i >= 0; i--) {
answer.push(num_list[i]);
}
return answer;
}
let i = num_list.length - 1
이 부분이 인덱스[]를 나타내는것이다!! *더 쉽게 말하면 배열의 길이가 5일때, 마지막 요소는 인덱스[4]에 위치한다 !! 그렇기 때문에 length - 1
은 배열의 가장 마지막 위치를 나타내줄수있는거지 ! push(num_list[i])
속에서 !! 사람들은 참 똑똑한거같다,,ㅎ,,function solution(my_string, letter) {
const answer = my_string.replaceAll(letter, '');
return answer;
}
replaceAll(pattern, replacement)
letter의 문자를 공백으로 바꿔줘!function solution(my_string, letter) {
const answer = my_string.split(letter).join('')
return answer;
}
.split(letter)
가 문제의 예시대로 하자면, abcfde 를 ["abc", "de"]로 나눈거다 f는 letter의 값이니까 빠진거고, .join('')
이용하면 요소들을 다시 합칠수있는데 ('') 빈 문자열(empty string)를 f자리에 넣어 공백 없이 요소들을 이어붙이는 역할을 한다.