⛵ 항해99/개강준비

[JavaScript 문법] 프로그래머스_4일차

hhhhy 2023. 8. 1. 01:43

 중복된 숫자 개수 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120583

 

  • 나의 풀이
function solution(array, n) {

    let newarr = 0; // 1) newarr는 0부터 시작하는데,
    for (let i = 0; i < array.length; i++) {
        if (array[i] === n) {
            newarr++
            // 2) 조건에 맞으면 1씩 증가(++)해라
        }
    }
    return newarr
}

console.log(solution([1, 1, 2, 3, 4, 5], 1))

 

 배열의 평균값 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120817

 

  • 나의 풀이
function solution(numbers) {
    let num = 0;
    for (let i = 0; i < numbers.length; i++) {
        num += numbers[i]
        // num에 numbers의 i번째 숫자를 더해라
    } return num / numbers.length;
}

console.log(solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))

 

 짝수 홀수 개수 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120824

 

  • 나의 풀이
function solution(num_list) {
    let aa = 0;
    let b = 0;

    for (let i = 0; i < num_list.length; i++) {
        if (num_list[i] % 2 === 0) {
            // 2로 나눴을때 나머지가 0이면 짝수
            aa++
        } else { b++ };
    }
    return [aa, b];
}

console.log(solution([1, 2, 3, 4, 5]))

 

  • 알게 된 것
📍 for of를 활용한 코드
function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }

    return answer;
}
console.log(solution([1, 2, 3, 4, 5]))  // [ 2, 3 ]

 

 배열 자르기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120833

 

  • 나의 풀이
function solution(numbers, num1, num2) {
    return numbers.slice(num1, num2+1);
}
console.log(solution([1, 2, 3, 4, 5], 1, 3))  // [2, 3, 4]

 

  • 알게 된 것
📍 splice()를 활용한 코드
- splice(start, deleteCount, item1, item2, ...) 응용
- item... 부분없이 splice(start, deleteCount)까지만 사용하면 start 인덱스부터 deleteCount 개수만큼 요소를 제거됨

function solution(numbers, num1, num2) {
    return numbers.splice(num1, num2-num1+1);}
console.log(solution([1, 2, 3, 4, 5], 1, 3))  // [2, 3, 4]

# splice() 사용시 원본 배열은 변경됨
const array = [1, 2, 3, 4, 5];
array.splice(1, 3); // 인덱스 1부터 3개의 요소를 제거
console.log(array); // 출력: [1, 5]

 

 배열 원소의 길이 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120854

 

  • 나의 풀이
function solution(strlist) {
    let newstr = [];

    for (let i = 0; i < strlist.length; i++) {
        newstr.push(strlist[i].length);
        // strlist의 길이를 넣으면 됨
    }
    return newstr;
}

console.log(solution(["We", "are", "the", "world!"]))

 

 배열 뒤집기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120821

 

  • 나의 풀이
function solution(num_list) {
    return num_list.reverse();
}

 

 최댓값 만들기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120847

 

  • 나의 풀이
function solution(numbers) {
    numbers.sort(function(a,b) {
        return b-a;
    });
    return numbers[0]*numbers[1]
}

console.log(solution([1, 2, 3, 4, 5]));

 

  • 알게 된 것
📍 sort() 메서드
- 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환

# 예시 - 오름차순
numbers.sort(function(a, b) {
	return a - b;}
// a - b 값이 양수면 a가 더 큰 값으로 판단하고, a를 뒤로 보냄


# 예시 - 내림차순
numbers.sort(function(a, b) {
	return b - a;}
// b - a 값이 양수면 b가 더 큰 값으로 찬단하고, b를 앞으로 가져옴

# 참고
1) https://celltong.tistory.com/entry/JavaScript-sort-%EB%A9%94%EC%86%8C%EB%93%9C%EB%A1%9C-%EB%B0%B0%EC%97%B4-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0
2) https://www.daleseo.com/js-sort-to-sorted/
3) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort