코딩 공부/코딩테스트

자바스크립트 코딩테스트 입문 (19)

천서리 2023. 6. 3. 01:20
QUOTE THE DAY

“ 당신이 6개월 이상 한 번도 보지 않은 코드는 다른 사람이 다시 만드는 게 훨씬 더 나을 수 있다. ”

- 이글슨 (Eagleson)
반응형

코딩테스트 입문 Day 19 문자열, 배열, 조건문

출처 : https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


7의 개수

문제

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

 

 

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array의 원소 ≤ 100,000

 

입출력 예

array result
[7, 77, 17] 4
[10, 29] 0

 

입출력 예 설명

 

입출력 예 #1

  • [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.

입출력 예 #2

  • [10, 29]에는 7이 없으므로 0을 return 합니다.

 

solution.js

function solution(array) {
    var count = 0;
    
    for (var i = 0; i < array.length; i++) {
        var number = array[i].toString();
        
        for (var j = 0; j < number.length; j++) {
            if (number[j] === '7') { 
                count++;
            }
        }
    }
    
    return count; // 7의 개수 반환
}
  1. var count = 0; : 7의 개수를 저장하기 위한 변수 count를 초기화합니다.
  2. for (var i = 0; i < array.length; i++) { : 배열 array의 각 원소에 대해 반복합니다. 배열의 길이(array.length)만큼 반복하며, 반복 변수 i를 이용합니다.
  3. var number = array[i].toString(); : 배열의 원소를 문자열로 변환하여 변수 number에 저장합니다. 이렇게 하는 이유는 나중에 각 숫자를 자릿수로 분리하여 검사하기 위해서입니다.
  4. for (var j = 0; j < number.length; j++) { : 숫자를 문자열로 변환한 number 변수의 각 자릿수에 대해 반복합니다. 문자열의 길이(number.length)만큼 반복하며, 반복 변수 j를 이용합니다.
  5. if (number[j] === '7') { : number의 각 자릿수를 확인하여 값이 '7'인 경우를 찾습니다.
  6. count++; : 7인 경우 count 변수를 증가시킵니다.
  7. 내부 반복문이 끝나면, 외부 반복문으로 돌아가 다음 배열의 원소에 대해 처리합니다.
  8. return count; : 7의 개수를 나타내는 count 변수를 반환합니다.

잘라서 배열로 저장하기

문제

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 1 ≤ my_str의 길이 ≤ 100
  • 1 ≤ n  my_str의 길이
  • my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

 

입출력 예

my_str n result
"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]

 

입출력 예 설명

 

입출력 예 #1

  • "abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.

입출력 예 #2

  • "abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.

 

solution.js

function solution(my_str, n) {
    var answer = [];
    
    for (var i = 0; i < my_str.length; i += n) {
        var substr = my_str.substr(i, n);
        answer.push(substr);
    }
    
    return answer;
}
  1. var answer = []; : 결과를 저장하기 위한 빈 배열 answer를 초기화합니다.
  2. for (var i = 0; i < my_str.length; i += n) { : 문자열 my_str을 n씩 잘라서 반복합니다. 문자열의 길이(my_str.length)만큼 반복하며, 반복 변수 i를 n씩 증가시킵니다.
  3. var substr = my_str.substr(i, n); : 문자열 my_str을 i부터 n개의 글자로 자른 부분 문자열을 substr에 저장합니다. substr은 현재 반복에서 자른 문자열 조각입니다.
  4. answer.push(substr); : substr을 answer 배열에 추가합니다. 이렇게 하면 잘라진 부분 문자열이 answer 배열에 순서대로 저장됩니다.
  5. 내부 반복문이 끝나면, 외부 반복문으로 돌아가 다음 문자열 조각을 처리합니다.
  6. return answer; : 잘라진 문자열 조각들을 담고 있는 answer 배열을 반환합니다.

중복된 숫자 개수

문제

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

 

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array의 원소 ≤ 1,000
  • 0 ≤ n ≤ 1,000

 

입출력 예

array n result
[1, 1, 2, 3, 4, 5] 1 2
[0, 2, 3, 4] 1 0

 

입출력 예 설명

 

입출력 예 #1

  • [1, 1, 2, 3, 4, 5] 에는 1이 2개 있습니다.

입출력 예 #2

  • [0, 2, 3, 4] 에는 1이 0개 있습니다.

 

solution.js

function solution(array, n) {
    var count = 0;
    
    for (var i = 0; i < array.length; i++) {
        if (array[i] === n) { 
            count++;
        }
    }
    
    return count; // n의 개수 반환
}
  1. var count = 0; : n의 개수를 저장하기 위한 변수 count를 초기화합니다.
  2. for (var i = 0; i < array.length; i++) { : 배열 array의 각 원소에 대해 반복합니다. 배열의 길이(array.length)만큼 반복하며, 반복 변수 i를 이용합니다.
  3. if (array[i] === n) { : 현재 배열의 원소 array[i]와 주어진 숫자 n이 일치하는지 확인합니다.
  4. count++; : 일치하는 경우 count 변수를 증가시킵니다.
  5. 내부 반복문이 끝나면, 외부 반복문으로 돌아가 다음 배열의 원소에 대해 처리합니다.
  6. return count; : n의 개수를 나타내는 count 변수를 반환합니다.

머쓱이보다 키 큰 사람

문제

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

 

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 1 ≤ height ≤ 200
  • 1 ≤ array의 원소 ≤ 200

 

입출력 예

array height result
[149, 180, 192, 170] 167 3
[180, 120, 140] 190 0

 

입출력 예 설명

 

입출력 예 #1

  • 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.

입출력 예 #2

  • 180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.

 

solution.js

function solution(array, height) {
    var count = 0;
    
    for (var i = 0; i < array.length; i++) {
        if (array[i] > height) {
            count++;
        }
    }
    
    return count;
}
  1. var count = 0; : 키가 큰 사람의 수를 저장하기 위한 변수 count를 초기화합니다.
  2. for (var i = 0; i < array.length; i++) { : 배열 array의 각 원소에 대해 반복합니다. 배열의 길이(array.length)만큼 반복하며, 반복 변수 i를 이용합니다.
  3. if (array[i] > height) { : 현재 배열의 원소 array[i]가 주어진 키 height보다 큰지 확인합니다.
  4. count++; : 주어진 키보다 큰 경우 count 변수를 증가시킵니다.
  5. 내부 반복문이 끝나면, 외부 반복문으로 돌아가 다음 배열의 원소에 대해 처리합니다.
  6. return count; : 키가 큰 사람의 수를 나타내는 count 변수를 반환합니다.

이렇게 구현된 함수는 주어진 배열에서 주어진 키보다 큰 값의 개수를 세어서 반환하는 역할을 합니다. 이를 통해 주어진 키보다 큰 사람의 수를 셀 수 있습니다.

반응형
Adventure Time - BMO