간단한 자바스크립트 코딩 테스트(3)
1. 핸드폰 번호 가리기
문제 : 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
* phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"
결과
function solution(phone_number) {
var answer = '';
v_number = phone_number.slice(-4);
for(var i= 0; i<phone_number.length - 4; i++) {
answer += '*';
}
answer = answer + v_number;
return answer;
}
결과
console.log(solution("01033334444")); // "*******4444"
console.log(solution("027778888")); // "*****8888"
* 다른 방법
1. 정규식을 이용한 방법(phone_number.replace(/\d(?=\d{4})/g, "*"))
2. repeat 함수를 이용한 방법 : "*".repeat(s.length - 4) + s.slice(-4);
2. 짝수와 홀수
문제 : 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요
num은 int 범위의 정수입니다.
0은 짝수입니다.
입출력 예
num return
3 "Odd"
4 "Even".
결과
function solution(num) {
var answer = num % 2 ? 'Odd' : 'Even';
return answer;
}
3. 행렬의 덧셈
문제 : 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] : [[4,6],[7,9]]
[[1],[2]] [[3],[4]] : [[4],[6]]
function solution(arr1, arr2) {
var answer = [];
for(var i=0; i<arr1.length; i++ ) {
answer.push([]);
for(var k=0; k<arr1[i].length; k++) {
let sum = arr1[i][k] + arr2[i][k];
answer[i].push(sum);
}
}
return answer;
}
// 결과
console.log(solution([[1,2],[2,3]], [[3,4],[5,6]])); // [[4, 6], [7, 9]]
console.log(solution([[1],[2]],[[3],[4]])); // [[4], [6]]
* 다른방법
return arr1.map((a,i) => a.map((b, j) => b + arr2[i][j]));
4. 나머지가 1이 되는 수 찾기
문제 : 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
입출력 예
n result
10 3
12 11
입출력 예 #1
10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
입출력 예 #2
12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
결과
function solution(n) {
var answer = 0;
for(let i = 1; i < n; i++) {
if(n % i === 1 ) {
answer = i;
break;
}
}
return answer;
}
console.log(solution(10)); // 3
console.log(solution(12)); // 11
* 다른 방법(while문 사용 = 조건식이 바뀌는 형태로 처리)
function solution(n, x=1) {
while (x++) {
console.log(n % x, x);
if (n % x === 1) {
return x;
}
}
}
'개발 > javascript' 카테고리의 다른 글
자바스크립트 코딩 테스트 몇가지(5) - 응용 (0) | 2022.05.25 |
---|---|
간단한 자바스크립트 코딩 테스트 몇가지(4) (0) | 2022.04.28 |
간단한 자바스크립트 코딩 테스트 몇가지(2) (0) | 2022.04.26 |
간단한 자바스크립트 코딩 테스트 몇가지(1) (0) | 2022.04.26 |
자바스크립트 event(이벤트) (0) | 2022.04.19 |