⛵ 항해99/개강준비

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

hhhhy 2023. 8. 1. 12:27

 머쓱이보다 키 큰 사람 

  • 문제 주소

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

 

  • 나의 풀이
function solution(array, height) {
    var answer = 0;
    for (let i = 0; i < array.length; i++) {
        if (array[i] > height) {
            answer++
        } // 머쓱이 키보다 키큰 사람을 세라
    }
    return answer;
}
console.log(solution([149, 180, 192, 170], 167))

 

 배열 두배 만들기 

  • 문제 주소

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

 

  • 나의 풀이
function solution(numbers) {
    let newnum = [];
    // 새로운 배열을 받을 곳을 만들고

    for (let i = 0; i < numbers.length; i++) {
        newnum.push(numbers[i] * 2);
        // for in문 돌면서 나온 수를 newnum에 넣어주는데 *2한 값으로 넣는다
    } return newnum;
}

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

 

 삼각형의 완성조건(1) 

  • 문제 주소

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

 

  • 나의 풀이
function solution(sides) {
    sides.sort(function (a, b) {
        return a - b;
        // sides 안에 요소들을 2개씩 넣어 비교함
        // a - b = 양수이면 a가 b보다 크므로, a와 b의 위치가 바뀜
        // a - b = 음수이면 a가 b보다 작으므로 a와 b의 위치를 바꾸지 않음
        // 이러한 과정을 반복하여 최종적으로 오름차순으로 정렬된 배열을 만듦
    });
    return sides[0] + sides[1] > sides[2] ? 1 : 2;
    // 오름차순으로 정렬된 배열러 길이 비교하기
}
console.log(solution([1, 2, 3]))

 

 중앙값 구하기 

  • 문제 주소

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

 

  • 나의 풀이
function solution(array) {
    array.sort(function(a, b) {
      return a - b;
      // sort 사용해서 오름차순으로 배열을 정렬한다
    });
    return array[Math.floor(array.length / 2)];
  }  // array.length를 2로 나누고 floor로 소수점 버리면, 중앙값의 위치나옴
     // 중앙값 위치를 array[]에 넣어서 중앙값 출력

  console.log(solution([1, 2, 7, 10, 11]))

 

 짝수는 싫어요 

  • 문제 주소

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

 

  • 나의 풀이
function solution(n) {
    let newn = [];
    for (let i = 0; i <= n; i++) {
        if (i % 2 !== 0) {
            newn.push(i);
        }
    } return newn;
}

console.log(solution(10))

 

  • 알게 된 것
📍 더하기 등호 연산자(+=)를 활용한 코드
function solution(n) {
    var answer = [];
    for (let i = 1; i <= n; i += 2) {
    // i가 1부터 시작하고, 한바퀴 돌 때마다 2씩 더하기 = 홀수만 나옴
        answer.push(i);
    }
    return answer;
}

 

 배열의 유사도 

  • 문제 주소

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

 

  • 나의 풀이
function solution(s1, s2) {
    let count = 0;

    for (let i = 0; i < s1.length; i++) {
        for (let j = 0; j < s2.length; j++) {
            if (s1[i] === s2[j]) {
                count++
            }
        }
    } return count;
}

console.log(solution(["a", "b", "c"], ["com", "b", "d", "p", "c"]))

 

  • 알게 된 것
📍 중첩 반복문 해석
① for (let i = 0; i < s1.length; i++) {
   ② for (let j = 0; j < s2.length; j++) {
        if (s1[i] === s2[j]) {
            count++
        }
    }
}

1) ① 반복문이 0으로 시작해서 ② 반복문으로 내려간다
2) ② 반복문이 0부터 끝까지 다 돌면
3) 다시 ① 반복문으로 올라와 1이 되고
4) 다시 ② 반복문으로 내려가서 0부터 끝까지 다 돈다