본문 바로가기

728x90

전체 글

(51)
[프로그래머스] 폰켓몬 [Level 1] 폰켓몬문제 링크구분코딩테스트연습 > 해시풀이 요약배열에서 중복을 제거하고 중복 제거 후, 배열의 길이와 배열 길이의 절반 중 작은 값을 반환하는 해시문제나의 풀이function solution(nums) { let temp=[...new Set(nums)] let max=nums.length/2 return temp.length>max ? max : temp.length}이 문제는 해시를 사용하여 중복된 값을 쉽게 제거할 수 있기 때문에 해시문제로 분류됩니다.해시를 사용하면 평균적으로 O(1)의 시간복잡도로 중복을 제거할 수 있기 때문에 효율적입니다.Javascript에서 Set 객체는 해시와 유사한 구조로 중복된 값을 제거합니다.Set을 이용하여 배열의 중복된 값을 제..
[프로그래머스] 2016년 [Level 1] 2016년문제 링크구분코딩테스트연습 > 연습문제풀이 요약2016년에 해당하는 요일을 반환하는 문제나의 풀이function solution(a, b) { var answer = ''; let day=["SUN","MON","TUE","WED","THU","FRI","SAT"] let date = new Date(`2016-${a}-${b}`).getDay(); return day[date]}2016년의 특정 날짜를 입력받아 해당 날짜의 요일을 반환하는 문제였습니다.new Date(2016-${a}-${b})를 통해 2016년의 특정 날짜를 나타내는 Date 객체를 생성하고,getDay 메서드를 호출하여 해당 날짜의 요일을 0~6까지의 숫자로 반환받습니다.date 값을..
[프로그래머스] 추억 점수 [Level 1] 추억 점수문제 링크구분코딩테스트연습 > 연습문제풀이 요약주어진 이름 배열, 그리움 배열을 매핑하여 각 사진에 포함된 이름들의 그리움 점수 합계를 계산하여 반환하는 단순 구현 문제나의 풀이function solution(name, yearning, photo) { let temp={}; for(let i=0; iarr.reduce((acc,cur)=>acc+(temp[cur]||0),0))}for문에서는 주어진 name 배열과 yearning 배열을 사용해서 각 이름을 키값으로 지정하고 그리움 점수를 값으로 하는 객체 temp 배열을 생성했습니다.또한, 각 사진 배열을 순회하기 위해 map 메서드를 이용했고 이를 그리움 점수를 합산하기 위해 reduce 메서드를 이용했습..
[프로그래머스] 푸드 파이트 대회 [Level 1] 푸드 파이트 대회문제 링크구분코딩테스트연습 > 연습문제풀이 요약주어진 음식의 양을 칼로리 순서대로 배열하여 두 선수가 대회 조건에 맞게 음식을 공평하게 먹을 수 있도록 배치한 문자열을 반환하는 문제나의 풀이function solution(food) { let answer = ""; for(let i=1; ifood 배열의 두 번째 요소부터 마지막 요소까지 for문으로 순회하면서 각 음식의 개수를 2로 나눈 몫만큼 해당 음식 번호를 answer에 추가했습니다.이렇게 함으로써 각 음식 번호가 절반만큼 반복되어 answer 문자열에 쌓이게 됩니다. 예를 들어, food = [1, 3, 4, 6]이 주어진 경우,food [1]은 3이므로, 1을 Math.floor(3 / 2)번 반복..
[프로그래머스] 자연수 뒤집어 배열로 만들기 [Level 1] 자연수 뒤집어 배열로 만들기문제 링크구분코딩테스트연습 > 연습문제풀이 요약문자열을 뒤집어 배열(정수형)로 변환하는 문제나의 풀이function solution(n) { return String(n).split("").reverse().map((v)=>v*1)}reverse 메서드로 문자열을 뒤집어 주고 map을 사용하여 배열의 요소를 정수형으로 변환해 주었습니다.
[프로그래머스] 자릿수 더하기 [Level 1] 자릿수 더하기문제 링크구분코딩테스트연습 > 연습문제풀이 요약문자열 각 자릿수의 합 구하기 (단순 구현)나의 풀이function solution(n){ return String(n).split("").reduce((acc,cur)=>acc+(cur*1),0)}reduce 메서드를 사용해서 배열의 각 요소의 합을 계산합니다.acc는 누적합계를 저장하고 cur은 현재 배열 요소를 나타내는 변수입니다. 또한 cur*1을 통해 현재 배열 요소를 숫자로 변환합니다.이는 자바스크립트의 **암묵적 변환(Implicit Coercion)**을 뜻하는데요예상치 못한 타입을 받았을 때 예상 가능한 타입으로 바꿔준다고 생각하면 됩니다. 그로 인해 숫자 값을 넘겨야 하는 곳에 문자열을 넣을 수 도 있고,..
[프로그래머스] 문자열 내 p와 y의 개수 [ Level 1 ] 문자열 내 p와 y의 개수문제 링크구분코딩테스트 연습 > 연습문제풀이 요약문자열 내의 원소 개수를 비교하는 문제나의 풀이function solution(s){ let cnt=0; let lowerArr=s.toLowerCase().split(""); for (let x of lowerArr){ if(x==="p") cnt++ else if (x==="y") cnt-- } return cnt===0? true :false //return cnt===0 위와 같은 결과를 반환합니다. }문자열 s를 소문자로 변환하고 , 각 문자를 배열의 원소로 분리하기 위해 toLowerCase 메서드와 split 메서드를 사용했습니다.반복문을 통해..
[코딩 기초 트레이닝] 전국대회 선발고사 [코딩 기초 트레이닝] 제목문제 링크구분코딩 테스트 연습 > 코딩 기초 트레이닝풀이 요약참석한 학생들의 순위를 정렬하여 상위 3명의 인덱스를 기반으로 점수를 계산합니다.나의 풀이function solution(rank, attendance) { let answer = 0; let temp=[]; for(let i=0; ia-b) answer=10000*rank.indexOf(temp[0]) + 100*rank.indexOf(temp[1]) + rank.indexOf(temp[2]) } else if(attendance[i]===false) {continue} } return answer;}attendance[i]가 true인 경우, ..

728x90