Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 깃허브
- 코딩테스트
- 프론트엔드개발자
- 프론트엔드부트캠프
- 패스트캠퍼스부트캠프
- js코테
- 부트캠프
- 패스트캠퍼스
- 프론트엔드
- 개발 프로젝트
- pokeapi
- 프로젝트
- 프로그래머스 JS 코테
- 자바스크립트 코딩테스트
- 미니 프로젝트
- 개발블로그
- 패캠
- 프로그래머스코테
- 깃
- Java
- 프로그래머스
- 영상처리
- FE
- JS
- 자바스크립트
- 개인프로젝트
- 국비지원취업
- 딥러닝
- 패캠부트캠프
- 국비지원
Archives
- Today
- Total
가쟤의 해변일기 🐳
JS 프로그래머스 코테 1단계 | 짝수와 홀수, x만큼 간격이 있는 n개의 숫자, 평균 구하기 본문
2023.08.07(월)
앞으로 1단계 정답률 높은 문제부터 풀어보려고 한다.
풀어보니까 생각보다 너무 빨리 풀려서 ... 0단계 정답률 낮은 문제와 병행하며 풀어야겠다고 생각했다.
Lv. 1 짝수와 홀수
당황했다.. 10초만에 풀었다..
문제는 이러하다.. 0단계 아닌교
function solution(num) {
if(num % 2 === 0) {
return "Even"
} else {
return "Odd"
}
}
빠르게 적어버렸는데 1트 성공
보니까 삼항 연산자 + 0은 false인 성질로 짧게 푸신 분도 있었다.
Lv. 1 x만큼 간격이 있는 n개의 숫자
이..것도 빨리 풀었다. 사실 새롭게 풀어보고 싶어서 while문으로 도전해봤는데 시간 초과로 실패 .. 아마 잘못 적은 것 같다.
function solution(x, n) {
let answer = []
let num = 0
for(let i = 1; i <= n; i++){
num = x * i
answer.push(num)
}
return answer
}
이 코드로 통과를 했고, 더 간결하게 만들 수 있다.
function solution(x, n) {
let answer = []
for(let i = 1; i <= n; i++){
answer.push(x * i)
}
return answer
}
이렇게 간결하게 고쳤다. (이게 근본 코드라고...)
for문만 계속 쓰는데, Array, fill, map도 쓰고 싶다...
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
- Array(n): 길이가 **n**인 배열을 생성한다. 배열의 모든 요소는 초기값으로 **undefined**로 설정된다.
- .fill(x): **Array(n)**으로 생성한 배열의 모든 요소를 **x**로 채운다. 이렇게 하면 배열의 모든 요소가 **x**로 설정된다.
- .map((v, i) => (i + 1) * v): .map() 메소드는 배열의 각 요소를 순회하면서 주어진 함수를 적용하여 새로운 배열을 생성한다. **v**는 현재 요소의 값이고 **i**는 현재 요소의 인덱스다.예를 들어, **x**가 3이고 **n**이 5인 경우, **Array(5).fill(3)**은 **[3, 3, 3, 3, 3]**을 생성하고, **.map((v, i) => (i + 1) * v)**를 적용하면 **[3 * 1, 3 * 2, 3 * 3, 3 * 4, 3 * 5]**인 **[3, 6, 9, 12, 15]**를 반환한다.
- map 메소드는 배열의 길이 **n**에 해당하는 횟수만큼 반복하며, 각 반복에서 **(i + 1) * v**를 반환한다. 여기서 **i + 1**은 1부터 시작하는 순차적인 값이며, **v**는 초기에 설정한 **x**의 값이다.
- 최종적으로 map 메소드에 의해 생성된 배열이 함수의 반환값으로 제공된다.
느낀점
- 챗 gpt 개쩐다...
- 다른 어려운 메소드도 많이 사용해 봐야겠다.
Lv. 1 평균 구하기
map도 써보려 하고 최대한 for문을 쓰지 않으려고 했다..!!
function solution(arr) {
const sum = arr.reduce((acc, cur) => {
return acc + cur
}, 0)
// return sum / arr.length
}
reduce를 써보려 했으나... 왜 타입 에러가 나는 것인지...??
function solution(arr) {
let number = arr.reduce((acc, cur) => acc + cur, 0)
return number / arr.length
}
이렇게 정답을 받아낸 코드를 작성했다. reduce는 처음 써보는데 확실하게 뭔지 알게 되었다.
function solution(arr) {
return arr.reduce((a, b) => a + b, 0) / arr.length
}
같은 코드를 더 간결하게 만들었다.
왜 에러가 났냐면 reduce에서 return 하는 건 number 변수로 할당이 되는거지 function solution에 할당되는게 아니기 때문이다.
에러가 나는 것은 solution에서 return 하는 값이 없어서 TypeError가 났다.
앞으로 요약하고 제출하는 연습을 해보자 !!!!
728x90
'코딩 테스트 in JS' 카테고리의 다른 글
프로그래머스 JS 코테 | 서울에서 김서방 찾기, 음양 더하기 (1) | 2023.08.28 |
---|---|
JS 프로그래머스 코딩테스트 | 수박, 가운데 글자 가져오기, 문자열 다루기 기본 (1) | 2023.08.24 |
JS 프로그래머스 코테 1단계 | 자연수 뒤집어 배열로 만들기, 제일 작은 수 제거하기, 자릿수 더하기 (4) | 2023.08.21 |
JS 코테 - 프로그래머스 1단계! K번째수 (0) | 2023.08.06 |
프로그래머스 JS 코딩테스트 준비 시작 ! (0) | 2023.08.01 |