TIL27-01 오늘의 코딩테스트

김태혁·2023년 2월 9일
0

TIL

목록 보기
86/205
  1. 영어가 싫어요

    영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

    numbers result
    "onetwothreefourfivesixseveneightnine" 123456789
    "onefourzerosixseven" 14067
  • replaceAll을 활용한 풀이
function solution(numbers) {
    let numberArr = ["zero","one", "two", "three" ,"four", "five", "six", "seven", "eight", "nine" ]
    for (let i = 0; i < numberArr.length; i++) { 
        numbers = numbers.replaceAll(numberArr[i], i);
    }     // numberArr배열의 문자로된 숫자들의 인덱스는 해당 숫자와 일치하는점, 그 점을 이용해 순회하여 해당 인덱스로 치환
    return Number(numbers); 
}
  1. 잘라서 배열로 저장하기

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

    my_str n result
    "abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
    "abcdef123" 3 ["abc", "def", "123"]
  • substr()과 slice()를 활용한 풀이
function solution(my_str, n) {
    let len = Math.ceil(my_str.length/n) //문자열의 길이를 n으로 나눈 몫을 올림하여 자를 횟수의 최대범위를 지정한다.
                                        //밑의 반복문을 통해 빈칸이 들어가기 때문에 횟수 지정이 필요하다.
    let answer = [];  
    for (let i = 0; i < len;  i++) {
        let a = my_str.substr(0,n)    // 주어진 n만큼 문자열을 잘라서 배열에 집어넣어주고
        answer.push(a);
         my_str= my_str.slice(n);      // 잘라진 문자 뒷부분을 새로운 문자열로 바꿔준다.
    } 
    return answer
}
  1. 문자열 계산하기

    my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.

    my_string result
    "3 + 4" 7
function solution(my_string) {
    let a = my_string.split(" ");
    let sum = a[0] * 1; // *1을 해주면 문자열이 숫자로 바뀐다. 초기값으로 설정해준다.
    for (let i = 0; i <a.length; i++) {
        if ( a[i] == "+") {
            sum += a[i+1]*1 //"+"라면 다음수를 숫자로 만들어 더해준다.             
        } else if (a[i] == "-") {
            sum -= a[i+1]*1 //"-"라면 다음수를 숫자로 만들어 빼준다.
        }       
    } return sum;
}
  1. 컨트롤 제트

    숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.

    s result
    "1 2 Z 3" 4
    "10 20 30 40" 100
    "10 Z 20 Z 1" 1
    "10 Z 20 Z" 0
    "-1 -2 -3 Z" -3
function solution(s) {
    let sum = 0; 
    let a = s.split(" ")
    for (let i = 0; i< a.length; i++) {
        if( a[i] !== "Z") {  //"Z"가 아니라면 정수화 시켜서 더해준다.
            sum += a[i]*1
        } else if ( a[i] == "Z") {//"Z"라면 앞의 수를 정수화시켜서 -를 붙여 더해준다.
            sum -= a[i-1]*1
        }
    }   return sum
}
profile
도전을 즐기는 자

0개의 댓글