오늘의 요약:
1. 배열 정복
2. 오늘도 평화로운 백준..문제풀이
#1 배열문제
오늘의 문제 주제는 배열을 활용하는 문제들에 대한 풀이이다. 그런데 첫 문제부터 런타임오류와 틀렸습니다가 나를 괴롭힌다.
10818번 - 최소, 최대
#2 오늘도 평화로운..
첫문제부터 이렇게 막히면 어떡하냐..
let fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let len = Number(input[0]);
let arr = input[1].split(' ').map(Number);
let min=1000001;
let max=-1000001;
arr.map(el=>{
if(el < min) min = el;
if(el > max) max = el;
})
console.log(min, max);
reduce를 사용한 다음의 풀이법도 있다.
그렇지만 며칠 쉬었더니 그런거라 생각하고 다음문제를 풀어보자.
이 문제 접근법은 맞았기 때문에 코드만 첨부하고 다음으로 넘어가자!
2562번 - 최댓값
이 문제는 어렵지 않게 해결할 수 있었다. 줄바꿈되서 출력되는 형태에 주의하고 index에 +1을 해주어야 몇 번째인지 표시할 수 있다는 것에 주의해야한다.
let fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let arr = input.map(Number);
let index = -1;
let max = arr.reduce((a,b)=> Math.max(a,b))
index = arr.indexOf(max)
console.log(`${max}\n${index+1}`)
역시 또다른 간결한 풀이를 제시해주셨다. 레전드 강사님이 맞다...
3052번 - 나머지
혼자서 잘 풀었는데 Set의 사용법이 아직은 엄청 익숙한 편이 아니라서 다음과 같이 모범답안으로 조금 수정해야했다. ㄹadd, size 등 Set 객체에서 자주 쓰이는 것들은 기억하고 있으면 좋을 것 같다.
let fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let data = input.map(Number);
let mySet = new Set();
for(let i = 0; i < 10; i++){
mySet.add(data[i]%42);
}
console.log(mySet.size);
4344번 - 평균은 넘겠지
오늘은 이 문제까지다..!! 약간 까다로워서 브론즈 1 문제인 것 같지만 실버,골드도 아니고 브론즈에서 1-5 정도의 난이도 차이는 큰 의미가 없어보인다. 소숫점 처리 이런 것들이 부가적으로 들어간 느낌이다.
출력초과가 무엇인지 찾아보았는데.. 일단 틀렸습니다라고 생각하면 편하다고 한다. 원하는 출력형식을 지키지 않은 것이 잘못이라고 한다.
let fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let testCases = Number(input[0]);
for (let t=1; t<=testCases; t++){
let data = input[t].split(' ').map(Number);
let n = data[0];
let summary = 0;
for (let i=1; i<= n; i++) {
summary +=data[i];
}
let average = summary / n;
let cnt = 0;
for (let i = 1; i <= n; i++)
if (data[i] > average) cnt += 1;
console.log(`${(cnt / n*100).toFixed(3)}%`);
}
이렇게 답을 정리할 수 있다. 다소 길게 느껴졌던 4주 챌린지가 종료되었다. 다음 시간에는 후기와 함께 여정을 돌아보자.
https://fastcampus.co.kr/dev_online_upjscodingtest
UPSKILL : Javascript 코딩테스트 131개 예제 & CS지식으로 끝내기 | 패스트캠퍼스
25시간 대비 과정 / '코테 레전드' 유튜버 강사님께 핵심만 배우고 빠르게 합격하세요.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'study > Challenge' 카테고리의 다른 글
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 코딩테스트 강의 한 달 후기 (0) | 2023.05.17 |
---|---|
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 강의 3주차 (1) | 2023.05.02 |
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 강의 2주차 (0) | 2023.04.27 |
패스트캠퍼스 JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기 강의 1주차 (0) | 2023.04.19 |
[Challenge / day-30] 컴포넌트 만들기 - 그룹생성 컴포넌트 (0) | 2023.03.21 |