-
[코딩 테스트] 프로그래머스 JS 연습 - 각도기, 짝수홀수 개수, 최댓값 만들기(1), 특정 문자 제거알고리즘/코딩 테스트 2023. 1. 16. 15:11
https://school.programmers.co.kr/learn/courses/30/lessons/120829
1. 각도기
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
- 예각 : 0 < angle < 90
- 직각 : angle = 90
- 둔각 : 90 < angle < 180
- 평각 : angle = 180
const solution = (angle) => { return [0,90,91,180].filter(x => x <= angle).length }
고차함수 메소드 중 filter 메소드를 이용하여 배열 [ 0, 90, 91, 180]의 원소보다 큰 배열의 길이를 추출한다.
2. 짝홀 개수 (3가지 방법)
문제 설명
정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
const solution = (num_list) => { var arr = [0,0] num_list.forEach(x => arr[x%2] +=1) return arr }
고차함수 메소드 중 forEach 메소드를 이용하여 짝수 홀수 판별하는 방법이다.
function solution(num_list) { return num_list.reduce(([even,odd],cur)=> { return [ (1- (cur % 2)) + even, cur % 2 + odd ] },[0,0]) }
고차함수 메소드 중 reduce 메소드를 이용하여 초기값 [0,0]으로 설정 후 현재 값 기준으로 배열에 짝수홀수 개수를 더한다.
function solution(num_list) { var answer = [0,0]; for ( var n of num_list) { answer[n%2] += 1 } return answer; }
이터러블 of를 이용하여 배열에 더한다.
3. 최댓값 만들기 (1)
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
function solution(numbers) { numbers.sort((a,b) => b-a) return numbers[0] * numbers[1] }
고차함수 메소드 중 sort를 이용하여 내림차순 정렬한 후 0번째 1번째 인덱스의 곱을 리턴한다.
4. 특정 문자 제거
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string, letter) { return my_string.split(letter).join('') }
split(letter) 사용시 letter로 my_string이 나눠저 배열로 저장된다.
5. 문자 반복 출력하기
function solution(my_string, n) { return my_string.split('') .map((x => x.repeat(n))) .join('') }
이 문제는 메소드 체이닝을 통해 더 쉽게 풀 수 있다.
string을 split 메소드를 사용하여 하나의 스펠링만을 담은 배열로 만든다.
그 배열을 map 메소드를 사용하여 원소의 반복횟수를 n만큼 한다.
그 후 배열을 join하면 된다.
그 외)
// 몫 parseInt(num1 / num2) Math.floor(num1 / num2)
//나머지 num1%num2
//생년 new Date.getFullYear() - age + 1
//배열 자르기 arr.splice(num1,num2-num1+1)
// 배열 최댓값 Math.max(...arr)
//str.repeat [...str].map(v => v.repeat(n))
'알고리즘 > 코딩 테스트' 카테고리의 다른 글