자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
function solution(n) {
var answer = 0;
return answer;
}
function solution(n) {
var answer = 0;
for(let i=1; i<=n; i++)
if(n%i===1) {
answer = i;
break;
}
return answer;
}
문제 푸는 과정
반복문은 n의 약수를 구하기 위해 사용한다. 약수의 최댓값은 자기자신이므로 n까지 반복문을 돌린다. 반복문은 1부터 커지므로 가장 작은 수는 제일 먼저 만나는 약수이다. 따라서 나머지가 1이 되면 즉시 반복문을 멈추고 해당 약수를 answer에 전달한다.
문제 링크 🔗 : 나머지가 1이 되는 수 찾기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
function solution(numbers) {
var answer = -1;
return answer;
}
function solution(numbers) {
var answer = 0;
for(let i=0; i<=9; i++)
answer+=i;
for(let i of numbers)
answer-=i;
return answer;
}
문제 푸는 과정
없는 수의 합을 더하는 문제이기 때문에 0~9까지 더한 값에서 numbers의 값을 뺐다. numbers의 없는 값들의 합 = (0~9까지 더한 수) - (numbers의 값들의 합)이다.
문제 링크 🔗 : 없는 숫자 더하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
function solution(arr) {
var answer = [];
return answer;
}
function solution(arr) {
var answer = [];
let min = arr[0];
for(let i=0; i<arr.length; i++){
min = Math.min(min,arr[i]);
}
for(let i=0; i<arr.length; i++)
if(arr[i] != min) answer.push(arr[i]);
if(answer.length == 0) answer.push(-1);
return answer;
}
문제 푸는 과정
먼저 이 문제를 풀 때 내가 시간을 낭비했던 부분은 단순히 제일 작은 수 하나를 제거하는 것이 아니라 제일 작은 수가 여러 개일 때는 모두 제거해줘야 한다는 부분이었다. 이 부분을 유의하면서 풀어야 한다.
제일 작은 수를 찾기 위해 Math.min을 사용한다. 제일 작은 값을 찾았다면 if문을 통해 min과 다른 값일 때만 배열에 값을 넣는다.
문제 링크 🔗 : 제일 작은 수 제거하기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
function solution(phone_number) {
var answer = '';
return answer;
}
function solution(phone_number) {
var answer = '';
let len = phone_number.length;
for(let i=0; i<len-4; i++)
answer+='*';
for(let i=len-4; i<len; i++)
answer+=phone_number[i];
return answer;
}
문제 푸는 과정
전화번호에서 뒤의 4자리를 제외하고 로 만들어주기 위해 문자열 길이에서 4를 뺀 만큼 반복문을 돌린다. 반복되는 횟수만큼 을 더해주면 뒷자리를 제외한 앞부분이 *로 바뀐다. 그다음 뒤의 4자리를 원래 전화번호로 붙이기 위해 반복문을 뒤에서 4자리를 뺀 만큼 시작하여 끝까지 돌린다. 그리고 해당되는 번호를 붙인다.
문제 링크 🔗 : 핸드폰 번호 가리기
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
function solution(n)
{
var answer = 0;
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
console.log('Hello Javascript')
return answer;
}
function solution(n)
{
let answer = 0;
while(n>0){
answer+=n%10;
n = Math.floor(n/10);
}
return answer;
}
문제 푸는 과정
n을 뒷자리부터 하나씩 가져오기 위해 나머지를 구한다. %10을 한 나머지는 맨 뒷자리 값이 된다. 자리를 한칸 앞으로 옮기기 위해 10을 나눠준다. Math.floor를 사용하여 나눌 때 소숫점이 나오면 버린다.
문제 링크 🔗 : 자릿수 더하기