⛵ 항해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부터 끝까지 다 돈다