Winnie The Pooh Bear 코딩 테스트 입문

코딩테스트

코딩 테스트 입문

코딩은 처음이라 2023. 6. 1. 23:38

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

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

https://programmers.co.kr/

 

 

 

문자열 정렬하기

 

문제 설명

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

제한 사항

  • 1 ≤ my_string의 길이 ≤ 100
  • my_string에는 숫자가 한 개 이상 포함되어 있습니다.
  • my_string은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다. - - -

입출력 예

my_string result
"hi12392" [1,2,2,3,9]
"p2o4i8gj2" [2,2,4,8]
"abcde0" [0]

입출력 예 설명

  • "hi12392"에 있는 숫자 1, 2, 3, 9, 2를 오름차순 정렬한 [1, 2, 2, 3, 9]를 return 합니다.
  • "p2o4i8gj2"에 있는 숫자 2, 4, 8, 2를 오름차순 정렬한 [2, 2, 4, 8]을 return 합니다.
  • "abcde0"에 있는 숫자 0을 오름차순 정렬한 [0]을 return 합니다.

출력

function solution(my_string) {
  var answer = [];
  for (var i = 0; i < my_string.length; i++) {
    var char = my_string[i];
    if (!isNaN(char)) { // 문자가 숫자인지 확인
      answer.push(Number(char)); // 숫자인 경우 배열에 추가
    }
  }
  return answer.sort(function(a, b) { return a - b; }); // 오름차순으로 정렬된 배열 반환
}

for문을 사용해  my_string의 각 문자를 순회합니다.

my_string[i]는 현재 문자열에서 i인덱스에 해당하는 문자를 가져옵니다.

isNaN 함수를 사용해 char가 숫자인지 확인하고 숫자이면 false를 반환하고 숫자가 아니면 true 를 반환합니다.

!isNaN(char) 는 char가 숫자인지를 물어보는 조건문 입니다.

char 가 숫자인 경우에만 조건문이 참이 됩니다.

조건문이 참인 경우 Number(char)를 사용해 숫자로 변환 후 answer배열에 push메서드를 사용하여 숫자를 추가합니다.

모든 문자를 순회환 후 answer배열을 sort함수를 사용해 오름차순으로 정렬하고 sort 함수는 숫자 배열을 정렬할 때 숫자 값의 크기에 따라 정렬됩니다.

 

숨어있는 숫자의 덧셈

 

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

제한 사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

입출력 예

my_string result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16

입출력 예 설명

  • "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.
  • "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.

출력

function solution(my_string) {
  var answer = 0;
  
  for (var i = 0; i < my_string.length; i++) {
    var char = my_string[i];
    
    // 현재 문자가 한 자리 숫자인지 확인
    if (!isNaN(char) && char !== ' ') {
      answer += parseInt(char);
    }
  }
  
  return answer;
}

주어진 문자열 my_string 을 순회하면서 각 문자를 확인하고 현재 문자가 숫자인지 확인하기 위해isNaN함수를 하용해 숫자가 아닌 경우와 공백 문자인 경우는 제외합니다.

현재 문자가 한 자리 숫자라면, parseInt 함수를 사용해 해당 숫자로 변환 후  answer에 더합니다.

문자열의 모든 문자를 확인 한 후 answer를 반환합니다.

 

 

반응형