목록알고리즘 & 코딩테스트 (73)
한 걸음씩 기록하며
[핸드폰 번호 가리기] 문제 설명 : 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. ⛏제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 📁 입출력 예시 👉🏻 답안 1) .repeat(), .slice() 함수 사용 function solution(phone_number) { let answer = '*'.repeat(phone_number.length-4) + phone_number.slice(-4) return answer; } 2) for, if 문 사용 functio..
[음양 더하기] 문제 설명 : 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. ⛏제한 조건 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 📁 입출력 예시 👉🏻 답안 1) reduce(), arrow function (좀 전 문제에서 배운 것 응용해봤다. function solution(arr) {return (arr.reduce((acc, val) => acc + val) / arr.length;} 2) for문 function solution(arr) { let answer = 0; for (let i = 0; i < arr.length; i++) { answer += arr[i];..
[음양 더하기] 문제 설명 : 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. ⛏제한 조건 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 📁 입출력 예시 👉🏻 답안 function solution(absolutes, signs) { let answer ..
[문자열을 정수로 바꾸기] 문제 설명 : 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. ⛏제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 📁 입출력 예시 예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 👉🏻 답안 function solution(s) {return parseInt(s)}; 📑 간단한 설명 parseInt는 문자열을 정수형 숫자로 변환해주는 함수입니다.
[없는 숫자 더하기] 문제 설명 : 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. ⛏제한 조건 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 수 ≤ 9 numbers의 모든 수는 서로 다릅니다. 📁 입출력 예시 👉🏻 답안 1) for문으로 직접적으로 대조하여 answer에 값 더하기 function solution(numbers) { let answer = 0; for (let i = 0; i < 10; i++) { // for문으로 0~10까지 반복하고 if (!numbers.includes(i)) { // 배열 ..
[두 정수 사이의 합] 문제 설명 : 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. ⛏제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 📁 입출력 예시 👉🏻 답안 function solution(a, b) { let sum = 0; if (a > b) { for (let i = b; i
[가운데 글자 가져오기] 문제 설명 : 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. ⛏제한 조건 s는 길이가 1 이상, 100이하인 스트링입니다. 📁 입출력 예시 👉🏻 답안 function solution(s) { let midOfStr = Math.ceil(s.length/2) return s.substr( midOfStr -1,( s.length % 2 === 0 ? 2 : 1)) } 📑 간단한 설명 Math.ceil 은 올림하는 함수다. 먼저 홀수든 짝수든 같은 midOfStr로 동일한 중간 값을 구했다. .substr(인덱스, 길이) 은 문자열을 자르는 함수다. 인덱스는 midOfStr-1로 고정하고, 삼항 연..
[직사각형 별찍기] 문제 설명 : 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. ⛏제한 조건 n과 m은 각각 1000 이하인 자연수입니다. 📁 입출력 예시 👉🏻 답안 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); for ( let i = 0; i < b; i++ ) { for ( let j = 0; j < a; j++ ) { process.stdout.write('*'); } console.log..