ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해99 알고리즘 1일차(2)
    알고리즘 풀이 2021. 11. 9. 09:28

    5.문자열을 정수로

     

    문제 설명

    문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

    제한 조건

    • s의 길이는 1 이상 5이하입니다.
    • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
    • s는 부호와 숫자로만 이루어져있습니다.
    • s는 "0"으로 시작하지 않습니다.

    입출력 예

    예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
    str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

     

    function strToInt(str){

        return str/1

        }

     string으로 감싸진 숫자를 정수와 연산을 하면 정수로 바뀐다 s/1 이면 문자열 숫자 '12'와 정수 1과 나누는 연산을 하게되면 12/1 로 인식하고 정수형 숫자 12 로 return

     

    function strToInt(str){

        return  +str;

      }

    자바스크립트 특성상 정수에 string 숫자를 더하면 정수가 되고 string인 숫자에 정수를 더하면 string 이 된다.

    따라서 +를 붙여 정수에 '12' 처럼 숫자 string 을 넣어주면 정수 12 로 바뀐다.

     

    function solution(s) {

       

        return Number(s);  

    }

    Number()을 사용하여 string 값을 정수로 변환 후 return

     

    6. 없는 숫자 더하기

     

    문제 설명

    0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.


    제한사항

    • 1 ≤ numbers의 길이 ≤ 9
    • 0 ≤ numbers의 모든 수 ≤ 9
    • numbers의 모든 수는 서로 다릅니다.

    입출력 예

     

    numbers result
    [1,2,3,4,6,7,8,0] 14
    [5,8,4,0,6,7,9] 6

    입출력 예 설명

    입출력 예 #1

    • 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.

    입출력 예 #2

    • 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

     

    문제풀이

    function solution(numbers) {

    //0-9까지의 전체 합45에서 빠진 값을 모두 더해 빼주면 된다.

        return 45 - numbers.reduce((cur, acc) => cur + acc, 0); //초기값은 0으로 설정.

    }

     

    7.음양 더하기

     

    문제 설명

    어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.


    제한사항

    • absolutes의 길이는 1 이상 1,000 이하입니다.
      • absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
    • signs의 길이는 absolutes의 길이와 같습니다.
      • signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.

    입출력 예

     

    absolutes signs result
    [4,7,12] [true,false,true] 9
    [1,2,3] [false,false,true] 0

    입출력 예 설명

    입출력 예 #1

    • signs가 [true,false,true] 이므로, 실제 수들의 값은 각각 4, -7, 12입니다.
    • 따라서 세 수의 합인 9를 return 해야 합니다.

    입출력 예 #2

    • signs가 [false,false,true] 이므로, 실제 수들의 값은 각각 -1, -2, 3입니다.
    • 따라서 세 수의 합인 0을 return 해야 합니다.

    문제

    function solution(absolutes, signs) {

        var answer = 123456789;

        return answer;

    }

     

    문제풀이

    function solution(absolutes, signs) {

        let answer = 0

        for (let i = 0; i < absolutes.length; i++){ //반복문을 i만큼 돌려준다

            if (signs[i] === true) { //signs가 트루이면

                answer = answer + absolutes[i] //정수배열들을 더하고

            }else

                answer = answer - absolutes[i] //아니면 정수배열들을 빼준다.

            }

        }

        return answer;

    }

     

    다른풀이

    function solution(absolutes, signs) {

     

        return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);

    }

     

     

    8. 평균구하기

    https://jann2codingdiary.tistory.com/9

     

    항해99 2주차 알고리즘 풀이2

    문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입

    jann2codingdiary.tistory.com

     

     

Designed by Tistory.