이예지(프로그래머스)
문제 1.
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
입출력 예
my_string num1 num2 result
"hello" 1 2 "hlelo"
"I love you" 3 6 "I l veoyou"
문제 2.
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요. (age는 자연수)
age result
23 "cd"
51 "fb"
100 "baa"
HTML
복사
풀이 1-1.
function solution(my_string, num1, num2) {
var answer = '';
for(let i= 0; i< my_string.length; i++){
if(i === num1){
answer += my_string[num2];
}else if(i === num2) {
answer += my_string[num1];
}else{
answer+= my_string[i];
}
}
return answer;
}
풀이 1-2.
function solution(my_string, num1, num2) {
var answer = '';
[...my_string].forEach((item, index)=>{
(index === num1) ? (answer += my_string[num2]) : (index === num2) ? (answer += my_string[num1]) : (answer += item)
})
return answer;
}
풀이 2.
function solution(age) {
let arr = [ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
return String(age).split("").map((v)=> arr[v]).join("");
}
JavaScript
복사
조원영(프로그래머스)
문제1
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
입출력 예
phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"
문제2
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
입출력 예
n return
12345 [5,4,3,2,1]
JavaScript
복사
풀이1
function solution(phone_number) {
var answer = '';
for (let i = 0; i < phone_number.length - 4; i++) {
answer += '*';
}
answer += phone_number.slice(-4);
return answer;
}
풀이2
function solution(n) {
var answer = n.toString().split('').map(Number).reverse();
return answer;
}
JavaScript
복사
유하은(프로그래머스)
문1)
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.
정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
제한사항
0 < M, N < 100
종이를 겹쳐서 자를 수 없습니다.
입출력 예
M N result
2 2 3
2 5 9
1 1 0
JavaScript
복사
풀이1)
function solution(M, N) {
return answer = (M * N)-1;
}
JavaScript
복사
문2) 연속된 수의 합
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
제한사항
1 ≤ num ≤ 100
0 ≤ total ≤ 1000
num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.
입출력 예
num total result
3 12 [3, 4, 5]
5 15 [1, 2, 3, 4, 5]
4 14 [2, 3, 4, 5]
5 5 [-1, 0, 1, 2, 3]
JavaScript
복사
풀2)
function solution(num, total) {
let answer = [];
let center = parseInt(total / num); // 중간값
//홀수일 때
if(num % 2 != 0){
for(let i = center - parseInt(num/2); i <= center + parseInt(num/2); i++){
answer.push(i);
}
}
//짝수일 때
else{
for(let i = center- parseInt(num/2)+1; i<= center + parseInt(num/2); i++){
answer.push(i)
}
}
return answer;
}
<예지님 코멘트>
function solution(num, total) {
var answer = [];
let start = (total/num) - ((num-1)/2);
for(let i = 0 ; i < num; i++){
answer.push(start);
start += 1;
}
return answer;
}
JavaScript
복사
김미정(프로그래머스)
문제1.
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
JavaScript
복사
풀이1.
function solution(n) {
let arr = n.toString()
let sum = 0;
for(const item of arr){
sum += parseInt(item)
}
return sum
}
// toString() 정수열을 문자열로 바꾸어 주는 메소드
// parseInt 문자열을 정수열로 변환시켜주는 함수
JavaScript
복사
손수민(프로그래머스)
문제
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
JavaScript
복사
풀이 1
function solution(n) {
return n.toString().split('').reduce((a,c)=>a+parseInt(c),0)
}
예지님 코멘트 : 코드 단축을 위해 변수 지정 말고 바로 return 으로 답을 추출하면 좋을것같습니다.
풀이 2
function solution(n) {
let string = n.toString()
return [...string].reduce((a,c)=>a+c*1,0)
}
풀이 3
function solution(n) {
let string = n.toString()
let s = 0;
for (const item of string) {
s += parseInt(item);
}
return s
}
풀이 4
function solution(n) {
let string = n.toString()
let answer=0
for(let i=0; i<string.length; i++){
answer+= string[i]*1
}
return answer
}
풀이 5 (원영님 도움)
function solution(n) {
return n.toString().split('').map(Number).reduce((a,c)=>a+c,0)
}
JavaScript
복사