본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다
1. 2차원으로 만들기
const solution = (num_list, n) => num_list.reduce((array, number, index) => {
const arrayIndex = Math.floor(index / n);
if (array[arrayIndex] === undefined) {
array[arrayIndex] = [number];
} else {
array[arrayIndex].push(number);
}
return array;
}, [])
2. 한 번만 등장한 문자
const solution = (s) => s.split('').sort().reduce((result, string, _, originS) => {
const filteredS = originS.filter(item => item === string);
if (filteredS.length === 1) {
result += string;
}
return result;
}, '');
3. 종이 자르기
const solution = (M, N) => (M - 1) + (M * (N - 1));
4. 모스부호(1)
const morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
};
const solution = (letter) => letter.split(' ').reduce((obj, string) => {
let {accString, result} = obj;
accString += string;
if (Object.keys(morse).includes(accString)) {
obj.result += morse[accString];
obj.accString = '';
} else {
obj.accString = accString;
}
return obj;
}, {accString: '', result: ''}).result;
5. 이진수 더하기
const solution = (bin1, bin2) => (parseInt(bin1, 2) + parseInt(bin2, 2)).toString(2);
Reference
'programming study > Algorithm' 카테고리의 다른 글
[프로그래머스] 문자열 계산하기 - JavaScript 풀이 (0) | 2022.10.24 |
---|---|
[프로그래머스] 코딩테스트 입문 - JavaScript 풀이 (0) | 2022.10.24 |
[프로그래머스] 코딩테스트 입문 - JavaScript 풀이 (0) | 2022.10.22 |
자료구조와 알고리즘 - 최단 경로 알고리즘 (0) | 2022.10.20 |
[프로그래머스] 코딩테스트 입문 - JavaScript 풀이 (0) | 2022.10.19 |