문제

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

프로그래머스 코딩테스트

 

사용한 함수 

substring() : 시작 인덱스와 종료 인덱스의 문자열을 반환한다.

let phone_number = 01023456789
hide = phone_number.substring(phone_number.length-4,0)  // 0102345
show = phone_number.substring(phone_number.length-4,phone_number.length) // 6789

 

해결

 

function solution(phone_number) {
    var answer = '';
    star = '*'
    hide = phone_number.substring(phone_number.length-4,0).length
    show = phone_number.substring(phone_number.length-4,phone_number.length);
    answer = star.repeat(hide) + show

    return answer;
}

문제
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

 

프로그래머스 코딩테스트

사용한 함수

reduce()의 총합 구하는 함수를 참고하였다.

var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
  return accumulator + currentValue;
}, 0);
var total = [ 0, 1, 2, 3 ].reduce(
  ( accumulator, currentValue ) => accumulator + currentValue,
  0
);

 

해결

 

function solution(arr) {
    var answer = 0; 
    answer = arr.reduce((a,b) => (a+b))/arr.length ;

    return answer;
}

 

 

 

 

 

문제

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 'numbers'가 매개변수로 주어집니다. 
'numbers' 에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

프로그래머스 코딩테스트

 

사용한 함수 

includes() : 괄호 내용을 포함한 값을 나타낸다. 

 

해결.

function solution(numbers) {
    var answer = 0;
    for (let i = 0; i < 10; i++) {
        if (numbers.includes(i) === true) {
            continue
        } else {       
            answer += i        
        }         
    }
    return answer;
}

 

 

 

 

해결. (다른사람의 풀이 참고)

function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}

사용함수: reduce() 

45 (1~9의 총합)  -  'number'변수 내 숫자 총합을 뺀 값을 구했다. 

 

 

해결. (다른사람의 풀이 참고)

function solution(numbers) {
    let answer = 0;

    for(let i = 0; i <= 9; i++) {
        if(!numbers.includes(i)) answer += i;
    }

    return answer;
}

내가 제출한 풀이와 비슷하지만, 

표현방식이 짧아서 참고하면 좋을 것같다.

문제

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

 

프로그래머스 코딩테스트

 

사용한 함수 

중첩 if문 :  absolutes의 리스트 순서와 signs의 순서를 같게 하기위해 사용하였다.

 

 

해결

function solution(absolutes, signs) {
    var answer = 0;
    len = absolutes.length
    
    for (let i=0; i<len; i++)
        if (absolutes[i]) {
            if (signs[i] == true) {
                answer += absolutes[i]
            }else{
                answer -= absolutes[i]
            }             
        }
    
    return answer;
}

 

 

해결 (다른사람의 풀이 참고)

function solution(absolutes, signs) {

    return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}

사용한 함수: reduce()

 

 

 

해결(다른사람의 풀이 참고)

function solution(absolutes, signs) {
    let answer = 0;
    absolutes.forEach((v, i) => {
        if (signs[i]) {
            answer += v;
        } else {
            answer -= v;
        }
    })
    return answer;
}

사용한 함수: forEach()

 

 

 

 

해결(다른사람의 풀이 참고)

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;
}

처음 보는 표현방식이라 가져왔다.

 

 

 

문제

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

사용한 함수 

Number() : 괄호에 해당하는 변수를 숫자로 반환

 

해결

function solution(s) {
    var answer = 0;
    answer = Number(s)
    return answer;
}

 

해결 (팀원 참고)

function solution(s) {
	var answer = parseInt(s);
    return answer;
}

사용한 함수 :

perseIns() : 괄호에 해당하는 변수를 숫자로 변환

문제

두 정수 a, b가 주어졌을 때 a와 b사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b=5인 경우, 3+4+5 = 12 이므로 12를 리턴합니다. 

 

입출력 예

a b return
3 5 12
3 3 3
5 3 12

 

사용한 함수 

Math.min() : 괄호의 값 중 가장 작은 값을 나타낸다.

Math.max() : 괄호의 값 중 가장 큰 값을 나타낸다.

 

해결

function solution(a, b) {
    var answer = 0;
    
    min = Math.min(a,b)
    max = Math.max(a,b)

    for (let i=min; i <= max; i++) {
      
        answer += i        
    }    
    return answer;
}

 

주석만들기 : Ctrl + /

 

 

1. 주석처리 오류시

 

Ctrl+Shift 누르고 Microsoft 입력기로 바꿔준다.

 

https://dev-jinee.tistory.com/3

 

 

 

2. 주석처리가 {# #} 로 될때

 

파일 → 설정 → 언어 및 프레임워크 → 스타일시트 → 템플릿 언어 → 템플릿언어: 없음 

 

https://msbs.tistory.com/39

 

+ Recent posts