고양이와 코딩
[프로그래머스] 1월2일 ~ 본문
728x90
1월2일
정수 내림차순으로 배치하기
내 풀이
function solution(n) {
const Str_n = n.toString().split('').sort().reverse().join('');
return Number(Str_n);
}
1월3일
하샤드 수
내 풀이
function solution(x) {
let sum = 0;
const str_x = (x + "").split('');
str_x.forEach((value, index) => {
sum += parseInt(value);
})
return x % sum === 0 ? true : false;
}
두 정수 사이의 합
내 풀이
function solution(a, b) {
let sum = 0;
if (a < b) {
for (let i = a; i <= b; i++){
sum += i;
}
} else {
for (let j = b; j <= a; j++){
sum += j;
}
}
return sum;
}
단순무식 한눈에 들어오는 풀이 ~ ^,^
1월4일
콜라츠 추측
내 풀이
function solution(num) {
let count = 0;
while(count <= 500 && num !== 1){
if (num % 2 === 0){
num /= 2;
} else {
num = (num * 3) + 1;
}
count++;
}
if(num === 1){
return count;
} else {
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;
}
깔꼼하다
1월5일
음양 더하기
내 풀이
function solution(absolutes, signs) {
for (let i = 0; i < signs.length; i++){
if(signs[i] == false){
absolutes[i] = absolutes[i] * (-1);
}
}
const answer = absolutes.reduce((acc, curr) => {
return acc + curr;
}, 0);
return answer;
}
다른 사람의 풀이
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
}
return answer;
}
둘다 멋진 방법이네요
true와 false활용을 잊지 맙시다!!!
1월6일
나누어 떨어지는 숫자 배열
내 풀이
function solution(arr, divisor) {
let answer = [];
arr.forEach((value, index) => {
if(value % divisor === 0) {
answer.push(value);
}
})
return answer.length ? answer.sort((a, b) => (a - b)) : [-1];
}
다른 사람의 풀이
function solution(arr, divisor) {
var answer = arr.filter(v => v%divisor == 0);
return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
}
filter사용은 생각도 못했다............
없는 숫자 더하기
내 풀이
function solution(numbers) {
let answer = 0;
for (let i = 0; i <= 9; i++){
if(!numbers.includes(i)){
answer += i;
}
}
return answer;
}
다른 사람의 풀이
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
1월7일
핸드폰 번호 가리기
내 풀이
function solution(phone_number) {
const answer = "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
return answer;
}
repeat를 사용해서 phone_number의 뒤에서 4개를 뺀 부분문자열만큼을 * 로 채우고 마지막 4개를 더한당
제일 작은 수 제거하기
내 풀이
function solution(arr) {
const min_num = Math.min(...arr);
const newArr = arr.filter(num => num !== min_num);
return newArr.length > 0 ? newArr : [-1];
}
const min_num = Math.min(arr) 라고 하면 안되고, 배열의 요소를 하나하나 전달해 주어야 하므로 전개 연산자(...)를 사용합니다!
'javascript' 카테고리의 다른 글
[프로그래머스] 1월16일 ~ 1월21일 (0) | 2024.01.16 |
---|---|
[프로그래머스] 1월8일 ~ 1월14일 (1) | 2024.01.08 |
[프로그래머스] 12월26일 ~ 12월30일 (0) | 2023.12.26 |
[프로그래머스] 게임 맵 최단거리(BFS) (0) | 2023.12.26 |
[프로그래머스] 12월18일 ~ 12월25일 (0) | 2023.12.18 |