자료구조 및 알고리즘/JavaScript Practice
JS Practice) 프로그래머스 : 문자 반복 출력하기 / 중앙값 구하기 / 특정 문자 제거하기 / 짝수는 싫어요 / 순서쌍의 개수
Ryomi
2023. 3. 4. 23:43
728x90
반응형
1. 문자 반복 출력하기
: 문자열 my_string과 n이 주어질때, 각 문자를 n번 반복한 문자열 return
- 내가 짠 코드
// 전
function solution(my_string, n) {
let arr = my_string.split('');
let answer = []
for(let i=0; i<arr.length; i++) {
for(let j=0; j<n; j++) {
answer.push(arr[i])
}
}
return answer.join('')
}
// 후
function solution(my_string, n) {
let answer = ""
for(let i of my_string){
answer += i.repeat(n)
}
return answer
}
- solution
function solution(my_string, n) {
return my_string.split('').reduce((acc, cur) => acc + cur.repeat(n), '')
}
2. 중앙값 구하기
: 숫자 배열이 주어질 때, 중앙값 출력
- 내가 짠 코드
// 전
function solution(array) {
let arr = array.sort((a,b)=> a-b)
let i=Math.round(arr.length / 2)
return arr[i-1]
}
// 후
function solution(array) {
let arr = array.sort((a,b)=> a-b)
return arr[Math.ceil(arr.length/2) -1]
}
- solution
function solution(array) {
return array.sort((a, b) => a - b)[Math.floor(array.length / 2)];
}
3. 특정 문자 제거하기
: 특정 문자가 제거된 문자열 반환
- 내가 짠 코드
// 전
function solution(my_string, letter) {
let arr = my_string.split("");
let arr2=[];
for(let i=0; i<arr.length; i++) {
if(arr[i]!==letter) {
arr2.push(arr[i])
}
}
return arr2.join("")
}
// 후
function solution(my_string, letter) {
return my_string.replaceAll(letter, "")
}
- solution
function solution(my_string, letter) {
const answer = my_string.split(letter).join('')
return answer;
}
4. 짝수는 싫어요
: n 이하의 홀수 배열 반환
- 내가 짠 코드
function solution(n) {
var answer = [];
for(let i=1; i<=n; i+=2) {
answer.push(i)
}
return answer;
}
- solution
function solution(n) {
return Array(n).fill(1).map((v,i)=>v+i).filter(v=>v%2===1);
}
5. 순서쌍의 개수
: 자연수 n의 순서쌍의 개수 반환
- 내가 짠 코드
function solution(n) {
var answer = n/2;
let count = 0;
for (let i = 1; i < n; i++) {
if (n % i === 0){
count++
}
}
return count + 1;
}
- solution
function solution(n) {
return Array(n).fill(1).map((v,idx) => v + idx).filter(v => n % v === 0).length
}
728x90
반응형