-
[코딩 테스트] 프로그래머스 JS 연습 - 이진수 더하기,잘라서 배열로 저장,중복된 문자 제거,구슬을 나누는 경우의 수알고리즘/코딩 테스트 2023. 1. 18. 18:49
1. 이진수 더하기
문제 설명
이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.
function solution(bin1, bin2) { return (parseInt(bin1,2) + parseInt(bin2,2)).toString(2) }
2진수를 10진수로 만들 때 parseInt를 사용하고,
10진수를 2진수로 만들 때 toString을 사용한다.
2. 잘라서 배열로 저장
문제 설명
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
function solution(my_str, n) { var answer = []; for (let i =0; i < my_str.length ; i += n) { answer.push(my_str.substring(i,i+n)) } return answer; }
substring
- 인자로 전달받은 인덱스(들)을 기준으로 자른 문자열 반환한다.
3. 중복된 문자 제거
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) { const set = new Set(my_string.split('')) return [...set].join('') ; }
set을 이용하면 쉽게 중복 제거할 수 있다.
function solution(my_string) { return [...new Set(my_string)].join(''); }
Set에 문자열을 넣을 수도 있다.
4. 구슬을 나누는 경우의 수
문제 설명머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.
function fact(n) { return !n ? 1 : n * fact(n-1) } function solution(balls, share) { return Math.round(fact(balls) / fact(balls-share) / fact(share)) }
반드시, Math.round을 써야한다.
그 이유는 부동소수점 연산을 하기 때문이다.
0.1+0.2 = 0.30000000000000004 이렇게 나온다.
'알고리즘 > 코딩 테스트' 카테고리의 다른 글