코드, 면접문제중 아무거나 2문제씩
문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한 조건
arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
입출력 예
arr return
[4,3,2,1][4,3,2]
[10][-1]
code
function solution(arr) {
let sortArr = [...arr].sort((a, b) => b - a);
let min = sortArr[sortArr.length - 1];
if (arr.length <= 1) {
return [-1];
} else {
arr.splice(arr.indexOf(min), 1);
}
return arr;
}
다른풀이
function solution(arr) {
let answer = [];
if (arr.length === 1) {
return [-1];
} else {
arr.splice(arr.indexOf(Math.min(...arr)), 1);
}
return arr;
}
description
나는 왜 쉽게 풀지 못하는 것인가,,,,
문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
n과 m은 각각 1000 이하인 자연수입니다.
입출력 예
입력
5 3
출력
*****
*****
*****
code
process.stdin.setEncoding('utf8');
process.stdin.on('data', (data) => {
const n = data.split(' ');
const a = Number(n[0]),
b = Number(n[1]);
const row = `${'*'.repeat(a)}\n`;
console.log(row.repeat(b));
});
description
repeat() str을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환
str.repeat(count);
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
s는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" "***4444"
"027778888" "*8888"
code
function solution(phone_number) {
let answer = '';
for (let i = 0; i < phone_number.length; i++) {
if (i >= phone_number.length - 4) {
answer += phone_number[i];
} else {
answer += '*';
}
}
return answer;
}
다른풀이
function solution(num) {
const len = num.length - 4;
return '*'.repeat(len) + num.substring(len);
}
description
substring() string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 str의 부분 str을 반환
const str = 'Mozilla';
str.substring(1, 3) // "oz"
str.substring(2) // "zilla"