Winnie The Pooh Bear 코딩테스트 연습 입문

코딩테스트

코딩테스트 연습 입문

코딩은 처음이라 2023. 5. 25. 23:20

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

 

 

 

 

1. 순서쌍의 개수

문제 설명

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

제한사랑

  • 1 ≤ n ≤ 1,000,000

입출력 예

n result
20 6
100 9

입출력 예 설명

  • n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.
  • n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) 이므로 9를 return합니다.

출력

function solution(n) {
    var answer = 0;
    
    for(var i=1; i<=n; i++){
        if(n%i === 0){
            answer++;
        }
        
    }
    return answer;
}

자연수n을 1부터 n까지의 수로 순회하면서 n을 해당 수로 나누었을 때 나머지가 0인 경우를 찾습니다.

나머지가 0인 경우는 순서쌍의 곱이 n이 되는 경우입니다. 해당 순서쌍을 찾을 때마다 answer값을 1 증가시킵니다.

 

 

 

 

 

2. 개미 군단

문제 설명

개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.

제한사항

  • hp는 자연수입니다.
  • 0 ≤ hp ≤ 1000

입출력 예

hp result
23 5
24 6
999 201

입출력 예 설명

  • hp가 23이므로, 장군개미 네마리와 병정개미 한마리로 사냥할 수 있습니다. 따라서 5를 return합니다.
  • hp가 24이므로, 장군개미 네마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 6을 return합니다.
  • hp가 999이므로, 장군개미 199 마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 201을 return합니다.

출력

function solution(hp) {
    var answer = 0;
    
    var generalAntCount = Math.floor(hp/5);
    hp -= generalAntCount * 5;
    answer += generalAntCount;
    
    var soldierAntCount = Math.floor(hp/3);
    hp -= soldierAntCount * 3;
    answer += soldierAntCount;
    
    answer += hp;
    return answer;
}

주어진 체력을 5로 나눈 몫을 장군개미의 수로 설정하고, 남은 체력에서 해당 개미들의 공격력에 해당하는 값을 차감합니다. 그 후에 남은 체력을 3으로 나눈 몫을 병정개미의 수로 설정하고 다시 남은 체력에서 해당 개미들의 공경력에 해당하는 값을 차감합니다. 마지막으로 남은 체력은 일개미의 수로 설정합니다.

 

 

 

3. 모스부호

문제 설명

머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
모스부호는 다음과 같습니다.

morse = { 
    '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'
}

제한사항

  • 1 ≤ letter의 길이 ≤ 1,000
  • return값은 소문자입니다.
  • letter의 모스부호는 공백으로 나누어져 있습니다.
  • letter에 공백은 연속으로 두 개 이상 존재하지 않습니다.
  • 해독할 수 없는 편지는 주어지지 않습니다.
  • 편지의 시작과 끝에는 공백이 없습니다.

입출력 예

letter result
"... . .-.. .-..---" "hello"
".--.-.-- - .....--- -." "python"

입출력 예 설명

  • .... = h
  • . = e
  • .-.. = l
  • .-.. = l
  • --- = o
  • 따라서 "hello"를 return 합니다.
  • .--. = p
  • -.-- = y
  • - = t
  • .... = h
  • --- = o
  • -. = n
  • 따라서 "python"을 return 합니다.
  • a ~ z에 해당하는 모스부호가 순서대로 담긴 배열입니다.
  • {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}

출력

function solution(letter) {
    var morse = { 
    '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'
    };
    var codes = letter.split(' ');
    var answer = '';
    
    for(var i=0; i<codes.length; i++){
        answer += morse[codes[i]];
    }
    return answer;
}

 모스부호와 알파벳 간의 매핑이 주어져 있으므로, 주어진 모스 부호를 하나씩 확인하면서 알파벳으로 변환하여 결과 문자열에 추가하면 됩니다.

 

 

 

 

4. 가위 바위 보

문제 설명

가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.

제한사항

  • 0 < rsp의 길이 ≤ 100
  • rsp와 길이가 같은 문자열을 return 합니다.
  • rsp는 숫자 0, 2, 5로 이루어져 있습니다.

입출력 예

rsp result
"2" "0"
"205" "052"

입출력 예 설명

  • "2"는 가위이므로 바위를 나타내는 "0"을 return 합니다.
  • "205"는 순서대로 가위, 바위, 보이고 이를 모두 이기려면 바위, 보, 가위를 순서대로 내야하므로 “052”를 return합니다.

출력

반응형