[프로그래머스] 레벨1 220404
1837 단어 프로그래머스코딩테스트JavaScriptJavaScript
📝핸드폰 번호 가리기
나의 풀이
function solution(phone_number) {
let answer = '';
answer = "*".repeat(phone_number.length-4) + phone_number.slice(-4);
return answer;
}
다른사람의 풀이
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
정규표현식 공부해야겠당...
📝하샤드 수
나의 풀이
function solution(x) {
const number_list = Array.from(x+"");
let sum = 0;
number_list.forEach(number => sum+=parseInt(number));
return x % sum === 0;
}
다른사람의 풀이
function Harshad(n){
return !(n % (n + "").split("").reduce((a, b) => +b + +a ));
}
신박한 풀이법이 많아서 재밌었다.
📝평균 구하기
나의 풀이
function solution(arr) {
return arr.reduce((prev, current) => prev + current)/arr.length;
}
이전 문제에서 본 reduce를 떠올려서 활용했다. 가장 기본적인 풀이법.
📝콜라츠 추측
나의 풀이
function solution(num) {
for(let answer=0; answer<=500; answer++){
if(num === 1) {
return answer;
} else if(num % 2 === 0) {
num = num/2;
} else {
num = num*3+1;
}
}
return -1;
}
다른사람의 풀이
function collatz(num) {
var answer = 0;
while(num !=1 && answer !=500){
num%2==0 ? num = num/2 : num = num*3 +1;
answer++;
}
return num == 1 ? answer : -1;
}
너무 예쁜코드... 삼항연산자를 생각을 하긴했는데 확실하게 이해하면서 쓰려고 하다보니 for문에 if으로 작성했다. 작성한 후에도 한번 더 생각해보기.
Author And Source
이 문제에 관하여([프로그래머스] 레벨1 220404), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyz0111/프로그래머스-레벨1-220404저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)