Level 1 - 가운데 글자 가져오기 - 연습문제

 

 문제

 

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

 

s return
"abcde" "c"
"qwer" "we"

 

 

풀이

사용 언어 : javascript

 

function solution(s) {
    var answer = '';
    s = s.split('');
    
    let num1 = Math.floor ( s.length / 2 );
    if ( s.length % 2 == 0 ){        
        answer += s[num1-1];
        answer += s[num1]; 
    }
    else {
         answer += s[num1];
    }

    return answer;
}

 

 출처 : https://programmers.co.kr/learn/courses/30/lessons/12903

Level 1 - 자릿수 더하기 - 연습문제

 

 문제

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

제한사항

  • N의 범위 : 100,000,000 이하의 자연수

입출력 예

N answer
123 6
987 24

입출력 예 설명

입출력 예 #1
문제의 예시와 같습니다.

입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다

 

 

 

 풀이

사용언어 javascript

function solution(n)
{
    var answer = 0;
    n = String(n).split('');
    for ( let i = 0; i < n.length; ++ i ){    
        answer+=parseInt(n[i]);
    }
    return answer;
}

출처 : https://programmers.co.kr/learn/courses/30/lessons/12931

Level 1 - 문자열 다루기 기본 - 연습문제

 

 문제

문제 설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

 

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

입출력 예

s return
"a234" false
"1234" true

 

 

 풀이

사용언어 javascript

 

function solution(s) {
    var answer = true;
    
    let string = s.split('');

    if ( string.length != 4 && string.length != 6)
        return false;
    
    for(let j = 0; j < string.length; ++j ) {
        
        string[j] = parseInt(string[j]);

        if ( !Number.isInteger(string[j])){
            answer = false;
            break;
        }

    }
    
    return answer;
}

출처 https://programmers.co.kr/learn/courses/30/lessons/12918

Level 1 - 수박수박수박수박수박수? - 연습문제

 

문제

문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

 

제한 조건

  • n은 길이 10,000이하인 자연수입니다.

입출력 예

n return
3 "수박수"
4 "수박수박"

 

 

 

풀이

사용언어 javascript

 

function solution(n) {
    var answer = '';
    
    for ( let i = 1 ; i <= n; ++i ){
        answer += i % 2 != 0 ? '수':'박';
    }
    return answer;
}

function solution(n) {
    var answer = '';
    
    for ( let i = 1 ; i <= n; ++i ){
        if ( i % 2 != 0 ) {
            answer +='수';
        }else {
            answer +='박';
        }
    }
    return answer;
}

출처 https://programmers.co.kr/learn/courses/30/lessons/12922

Level 1 - 두 정수 사이의 합 - 연습문제

 문제

 

문제 설명

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

 

제한 조건

  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.

입출력 예

a b retrun
3 5 12
3 3 3
5 3 12

 

 

 풀이

사용언어 javascript

function solution(a, b) {
    var answer = 0;
    
    if ( a == b )
        return a;
    
    if ( a > b ){
        for ( let i = b; i <= a; ++i ){
            answer += i;
        }
    }
    else {
        for ( let i = a; i <= b; ++i ){
            answer +=  i;
        }
    }    
    return answer;
}

function solution(a, b) {
    var answer = 0;
    
    if ( a == b )
        return a;

    for ( let i = Math.min(a,b); i <= Math.max(a,b); ++i ){
        answer += i;
    }
    return answer;
}

 

출처 https://programmers.co.kr/learn/courses/30/lessons/12912

Level 1 - 정수 제곱근 판별 - 연습문제


 문제

문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

제한 사항

  • n은 1이상, 50000000000000 이하인 양의 정수입니다.

입출력 예

n return
121 144
3 -1

입출력 예 설명

입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.

입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.

 

 

 풀이

사용언어 javascript

function solution(n) {
    for (let i = 0 ; i <= n; ++i ){ 
        if ( (i * i) === n ){
            return (i+1) *(i+1);
        }
    }
    return -1;
}


function solution(n) {
    var answer = 0;
    let num = Math.sqrt(n);

    if ( Number.isInteger(num) ){
        num +=1;
        answer = num *num;
    }
    else {
        answer = -1;
    }
    return answer;
}

 

 출처 https://programmers.co.kr/learn/courses/30/lessons/12934

 

Level 1 - 정수 내림차순으로 배치하기 - 연습문제

 문제

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건

  • n은 1이상 8000000000 이하인 자연수입니다.

입출력 예

nreturn

118372 873211

 

 

 풀이

사용언어 : javascript

 

function solution(n) {
    let strArr = (n.toString()).split('');
 
    
    strArr.sort((a,b)=>{
      return b-a;  
    });
   
    let answer = strArr[0];
    for (let i = 1 ; i < strArr.length; ++i ){
        
        answer += strArr[i];
    }
    answer = parseInt(answer);
    return answer;
}

 

출처 : https://programmers.co.kr/learn/courses/30/lessons/12933

 

Level 1 - 하샤드 수 - 연습문제

 

 문제

문제 설명

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

제한 조건

  • x는 1 이상, 10000 이하인 정수입니다.

입출력 예

arrreturn

10 true
12 true
11 false
13 false

입출력 예 설명

입출력 예 #1
10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다.

입출력 예 #2
12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다.

입출력 예 #3
11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다.

입출력 예 #4
13의 모든 자릿수의 합은 4입니다. 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.

 

 

 풀이

사용언어 javascript

function solution(x) {
    
    let numArr = x.toString();
    numArr = numArr.split('');
    
    let num =0;
    
    for ( let i = 0 ; i < numArr.length; ++i){
        
        num += parseInt(numArr[i]);
        
    }
    
    var answer = (x % num == 0) ? true : false;
    
    return answer;
}

출처 : https://programmers.co.kr/learn/courses/30/lessons/12947

 

+ Recent posts