
생각 과정
- 오늘은 탐색 메서드를 풀어봤다. 생각보다 너무 빨리 풀어서 놀랐고, includes 풀때도 콜백 넣었다가 틀렸다.
- some이나 every는 아직 눈에 안익어서, 앞으로 알고리즘 문제 풀면서 애용해보려 한다.
- JS도 거의 끝나간다. 화이팅~~
코드
// ── 드릴 1) 첫 번째 짝수 "값". [1,3,5,8,10] -> 8 ──
function d1_for(arr) {
let answer = 0;
for (const element of arr) {
if (element % 2 === 0) {
answer = element;
break;
}
}
return answer;
}
function d1_method(arr) {
return arr.find((item) => item % 2 === 0);
}
// ── 드릴 2) 5보다 큰 첫 번째 "값". [2,4,6,8] -> 6 ──
function d2_for(arr) {
let answer = 0;
for (const element of arr) {
if (element > 5) {
answer = element;
break;
}
}
return answer;
}
function d2_method(arr) {
return arr.find((item) => item > 5);
}
// ── 드릴 3) 첫 번째 짝수의 "인덱스". [1,3,4,5] -> 2 ──
function d3_for(arr) {
let answer = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 0) {
answer = i;
break;
}
}
return answer;
}
function d3_method(arr) {
return arr.findIndex((item) => item % 2 === 0);
}
// ── 드릴 4) 값이 0인 첫 인덱스, 없으면 -1. [1,2,3] -> -1 ──
function d4_for(arr) {
let answer = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) return i;
}
return -1;
}
function d4_method(arr) {
return arr.findIndex((item) => item === 0);
}
// ── 드릴 5) 짝수가 하나라도 있나? [1,3,5,7] -> false ──
function d5_for(arr) {
for (const element of arr) {
if (element % 2 === 0) return true;
}
return false;
}
function d5_method(arr) {
return arr.some((item) => item % 2 === 0);
}
// ── 드릴 6) 100 넘는 수가 하나라도 있나? [50,120,30] -> true ──
function d6_for(arr) {
for (const element of arr) {
if (element > 100) return true;
}
return false;
}
function d6_method(arr) {
return arr.some((item) => item > 100);
}
// ── 드릴 7) 전부 양수인가? [1,2,-3] -> false ──
function d7_for(arr) {
for (const element of arr) {
if (element < 0) return false;
}
return true;
}
function d7_method(arr) {
return arr.every((item) => item > 0);
}
// ── 드릴 8) 전부 10 미만인가? [3,5,9] -> true ──
function d8_for(arr) {
for (const element of arr) {
if (element >= 10) return false;
}
return true;
}
function d8_method(arr) {
return arr.every((item) => item < 10);
}
// ── 드릴 9) 배열에 7이 들어있나? [3,5,7,9] -> true ──
function d9_for(arr) {
for (const element of arr) {
if (element === 7) return true;
}
return false;
}
function d9_method(arr) {
return arr.includes(7);
}
// ── 드릴 10) 종합: "1 3 5 4 7" -> 짝수가 있으면 "첫 짝수", 없으면 -1 -> 4 ──
// (split -> map(Number) -> find. 없을 때 처리까지)
function d10_for(raw) {
const data = raw.split(" ");
for (const element of data) {
if (Number(element) % 2 === 0) return Number(element);
}
return -1;
}
function d10_method(raw) {
return raw
.split(" ")
.map(Number)
.find((item) => item % 2 === 0);
}
회고 (오늘의 발견, 잘한 점, 불확실한 점, 내일부터)
오늘의 발견:
- some, every 메서드.
- 생각보다 쉽다. 무섭지 않다.
잘한 점:
- 거의 5분만에 풀었다.
불확실한 점:
- some, every 필요할 때 떠올리기
- includes에 콜백 넣지않기
내일부터:
- 내일은 그래도 배열 관련 문제가 나온다. 다음주 월요일부터는 더 열심히 풀어보자.
'문제 풀이 > JavaScript' 카테고리의 다른 글
| [자바스크립트 감잡기] 2일차 - 변환 3대장 (map / filter / reduce) (0) | 2026.07.09 |
|---|---|
| [자바스크립트 감잡기] 1일차 - split, map(Number), slice, trim, join (0) | 2026.07.08 |