
생각 과정
- 다른 코테 문제들 풀이와 달리 클로드에게 맡겨 문제 세트를 몇개 해결하는 방식이다. 부족할 수 있겠지만 이걸로 앞으로 코테 문제를 잘 풀 수 있게 준비해보고 싶다.
코드
1번 세트
// 드릴 1) 한 줄에 정수 하나. raw="5" -> 숫자 5
function d1(raw) {
return Number(raw);
}
// 드릴 2) 공백으로 구분된 두 정수. raw="3 5" -> [3, 5]
function d2(raw) {
return raw.split(" ").map(Number);
}
// 드릴 3) 공백으로 구분된 정수들. raw="1 2 3 4 5" -> [1,2,3,4,5]
function d3(raw) {
return raw.split(" ").map(Number);
}
// 드릴 4) 여러 줄 정수. raw="10\n20\n30" -> [10,20,30]
function d4(raw) {
return raw.split("\n").map(Number);
}
// 드릴 5) 앞뒤 공백/개행 제거 후 숫자. raw=" 42\n" -> 42 체크
function d5(raw) {
return Number(raw.trim().split("\n"));
}
// 드릴 6) 첫 줄은 개수 N, 그 다음 줄들은 "a b" 간선. 모르겠다...
// raw="3\n1 2\n3 4\n5 6" -> [[1,2],[3,4],[5,6]]
// 힌트: split("\n") -> slice(1) -> map(줄 => 줄 나눠서 숫자배열)
function d6(raw) {
return raw
.split("\n")
.slice(1)
.map((slice) => slice.split(" ").map(Number));
}
// 드릴 7) 첫 줄 "N M"을 구조분해로 받아 객체로. raw="7 6" -> {n:7, m:6}
function d7(raw) {
const [n, m] = raw.split(" ").map(Number);
return { n, m };
}
// 드릴 8) 숫자 배열을 공백 문자열로. arr=[1,2,3] -> "1 2 3"
function d8(arr) {
return arr.join(" ");
}
// 드릴 9) 숫자 배열을 줄바꿈 문자열로. arr=[1,2,3] -> "1\n2\n3"
function d9(arr) {
return arr.join("\n");
}
// 드릴 10) 종합: 첫 줄 N, 둘째 줄에 공백구분 정수 N개. 그 정수 배열 반환.
// raw="3\n10 20 30" -> [10,20,30]
function d10(raw) {
return raw.split("\n").slice(1)[0].split(" ").map(Number);
}
2번 세트
// 드릴 1) 한 줄에 정수 하나. raw="42" -> 42
function d1(raw) {
return Number(raw);
}
// 드릴 2) 공백으로 구분된 두 정수. raw="8 2" -> [8, 2]
function d2(raw) {
return raw.split(" ").map(Number);
}
// 드릴 3) 공백으로 구분된 정수들. raw="9 8 7 6" -> [9,8,7,6]
function d3(raw) {
return raw.split(" ").map(Number);
}
// 드릴 4) 여러 줄 정수. raw="5\n15\n25\n35" -> [5,15,25,35]
function d4(raw) {
return raw.split("\n").map(Number);
}
// 드릴 5) 앞뒤 공백/개행 제거 후 숫자. raw="\n 100 \n" -> 100
function d5(raw) {
// return raw.split("\n").trim().map(Number);
return Number(raw.trim());
}
// 드릴 6) 첫 줄은 개수 N, 다음 줄들은 "a b" 간선. 모르겠다.
// raw="2\n10 20\n30 40" -> [[10,20],[30,40]]
function d6(raw) {
return raw
.split("\n")
.slice(1)
.map((item) => item.split(" ").map(Number));
}
// 드릴 7) 첫 줄 "N M"을 구조분해로 받아 객체로. raw="3 9" -> {n:3, m:9}
function d7(raw) {
const [n, m] = raw.split(" ").map(Number);
return { n, m };
}
// 드릴 8) 숫자 배열을 공백 문자열로. arr=[5,6,7] -> "5 6 7" 답 봤음
function d8(arr) {
return String(arr.join(" "));
}
// 드릴 9) 숫자 배열을 줄바꿈 문자열로. arr=[4,5] -> "4\n5"
function d9(arr) {
return String(arr.join("\n"));
}
// 드릴 10) 종합: 첫 줄 N, 둘째 줄에 공백구분 정수 N개. 그 정수 배열 반환.
// raw="4\n2 4 6 8" -> [2,4,6,8]
function d10(raw) {
// return raw.split("\n").slice(1).split(" ").map(Number); // "2 4 6 8"
return raw.split("\n").slice(1)[0].split(" ").map(Number);
}
회고 (오늘의 발견, 잘한 점, 불확실한 점, 내일부터)
오늘의 발견:
- 아직 엄청 어렵지는 않다. 큰 발견은 없음.
잘한 점:
- split, slice의 메서드 사용법이 쉬웠다. 까먹고 자주 못 쓰기만 했을뿐, 오늘 하루만에 감을 잡은 느낌이다.
- 풀이 방식이나 어떻게 해야겠다 라는건 여전히 잘 떠오르는 느낌이다.
불확실한 점:
- 2번 세트의 5,6,10번을 틀렸다. 어떤 문제냐면, 3가지가 있었다.
(1) 배열에 trim을 썼다.
(2) split 결과는 배열이다.
(3) map은 자기 인자로 함수를 갖고, .찍은 대상을 그 함수에 돌려준다. 3개 꼭 기억하기.
내일부터:
- 2일차를 풀자. 오늘은 꽤 순조로웠다.
'문제 풀이 > JavaScript' 카테고리의 다른 글
| [자바스크립트 감잡기] 3일차 - 탐색계 (find / findIndex / some / every / includes) (0) | 2026.07.10 |
|---|---|
| [자바스크립트 감잡기] 2일차 - 변환 3대장 (map / filter / reduce) (0) | 2026.07.09 |