Winnie The Pooh Bear 코딩 테스트 입문

코딩테스트

코딩 테스트 입문

코딩은 처음이라 2023. 6. 4. 19:02

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

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

프로그래머스 (programmers.co.kr)

 

 

코딩 테스트 입문

 

 

 

최댓값 만들기

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

제한사항

  • -10,000 ≤ numbers의 원소 ≤ 10,000
  • 2 ≤ numbers 의 길이 ≤ 100

입출력예

numbers result
[1,2,-3,4,-5] 15
[0,-31,24,10,1,9] 240
[10,20,30,40,5,5,20,5] 600

입출력설명

  • 두 수의 곱중 최댓값은 -3 * -5 = 15 입니다.
  • 두 수의 곱중 최댓값은 10 * 24 = 240 입니다.
  • 두 수의 곱중 최댓값은 20 * 30 = 600 입니다.

출력

function solution(numbers) {
  var answer = 0;
  var maxProduct = Number.NEGATIVE_INFINITY;

  for (var i = 0; i < numbers.length; i++) {
    for (var j = i + 1; j < numbers.length; j++) {
      var product = numbers[i] * numbers[j];
      if (product > maxProduct) {
        maxProduct = product;
      }
    }
  }

  return maxProduct;
}

answer 변수는 결과를 저장할 변수로 초기값을 0으로 설정합니다.

maxProdct 변수는 최대값을 저장할  변수로 초기값을 음수 무한대로 설정합니다.

이중 for문을 사용해 모든 가능한 두 수의 곱을 계산하고 numbers배열의 인덱스 i를 순회해 두 번째 for문i다음 인덱스부터 끝까지 j를 순회합니다. 이렇게 하면 모든 가능한 두 수의 조합을 비교할 수 있습니다.

 

 

최댓값 만들기

문제 설명

정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ n ≤ 10,000
  • 1 ≤ numlist의 크기 ≤ 100
  • 1 ≤ numlist의 원소 ≤ 100,000

입출력예

n numlist result
3 [4,5,6,7,8,9,10,11,12] [6,9,12]
5 [1,9,3,10,13,5] [10,5]
12 [2,100,120,600,12,12] [120,600,12,12]

입출력설명

  • numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.
  • numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.
  • numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.

출력

function solution(n, numlist) {
    var answer = [];
    for (var i = 0; i < numlist.length; i++) {
        var num = numlist[i];
        if (num % n === 0) {
            answer.push(num);
        }
    }
    return answer;
}

정수 n과  정수 배열 numlist가 주어질 때, numlist에서 n의 배수가 

아닌 수들을 제거한 배열을 반환하는 것입니다. 우선 함수 solution 을 정의합니다.

이 함수는 n과 numlist 를 매개변수로 받고 answer 라는 빈 배열을 선언합니다. 이 배열에서는 n의 배수가 아닌 수들을 저장할 것입니다. 그 다음 반복문을 사용해 numlist 배열을 순회하고 배열의 각 요소를 num 이라는 변수에 저장합니다.

그리고 num 이 n의 배수가 아닌 경우에만 answer 배열에 추가합니다. 배수 여부를 확인하기 위해 %연산자를 사용해 num 을 n으로 나눈 나머지가 0인지 확인합니다.

 

 

가장 큰 수 찾기

문제 설명

정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array 원소 ≤ 1,000
  • array에 중복된 숫자는 없습니다.

입출력예

array result
[1,8,3] [8,1]
[9,10,11,8] [11,2]

입출력설명

  • 1, 8, 3 중 가장 큰 수는 8이고 인덱스 1에 있습니다.
  • 9, 10, 11, 8 중 가장 큰 수는 11이고 인덱스 2에 있습니다.

출력

function solution(array) {
    var max = array[0]; // 가장 큰 수를 저장하는 변수를 초기화합니다.
    var maxIndex = 0; // 가장 큰 수의 인덱스를 저장하는 변수를 초기화합니다.
    
    for (var i = 1; i < array.length; i++) {
        if (array[i] > max) { // 현재 요소가 최댓값보다 큰 경우
            max = array[i]; // 최댓값을 갱신합니다.
            maxIndex = i; // 최댓값의 인덱스를 갱신합니다.
        }
    }
    
    return [max, maxIndex]; // 최댓값과 인덱스를 담은 배열을 반환합니다.
}

 

배열 array에서 가장 큰 수와 그 수의 인덱스를 찾는 함수 solution을 구현한것입니다.

주어진 배열에서 가장 큰 수를 찾기 위해 반복문을 사용합니다. 초기에 가장 큰 수를 mas 변수에 배열의 첫 번째 요소로 설정하고, 해당 요소의 인덱스를 maxIndex 변수에 0으로 설정합니다.

그 후, 반복문을 배열의 두 번째 요소부터 마지막 요소까지 순회합니다. 각 요소를 순회하면서 현재 요소가 max 보다 큰 경우 max 값을 해당 요소로 갱신하고 maxIndex 값을 현재 인덱스로 갱신합니다.

 

 

최댓값 만들기

문제 설명

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 1 < my_string의 길이 < 100
  • 0 ≤ num1, num2 < my_string의 길이
  • my_string은 소문자로 이루어져 있습니다.
  • num1  num2

입출력예

my_string num1 num2 result
"hello" 1 2 "hlelo"
"I love you" 3 6 "I I veoyou"

입출력설명

  • "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.
  • "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.

출력

function solution(my_string, num1, num2) {
    var strArray = my_string.split(''); // 문자열을 배열로 변환합니다.
    
    // 두 인덱스에 해당하는 문자를 서로 바꿉니다.
    var temp = strArray[num1];
    strArray[num1] = strArray[num2];
    strArray[num2] = temp;
    
    var result = strArray.join(''); // 배열을 다시 문자열로 변환합니다.
    return result;
}

my_string 과 인덱스 num1, num2가 주어졌을 때, 해당 인덱스에 해당하는 문자를 서로 바꾸는 함수 solution 을 구현한 것입니다.

먼저 주어진 문자열 my_string 을 split 메서드를 사용해 배열로 변환하고 문자열의 각 문자가 배열의 요소로 들어가게 합니다. 그 다음 두 인덱스 num1 과 num2에 해당하는 문자를 서로 바꿉니다. 이를 위해 임시 변수 temp 를 사용해 두 문자를 교환합니다. 마지막으로 join 메서드를 사용해 배열을 다시 문자열로 변환합니다.

반응형