ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CodeKata] 프로그래머스 : 3.16(화), JadenCase 문자열 & N개의 최소공배수
    카테고리 없음 2021. 3. 16. 10:15
    반응형

    🥋 Ooooth!! (Level 2) : JadenCase 문자열 만들기

     

    🧮 풀이

    function solution(s) {
      return s.split(" ")
      	.map(e => e === '' ? e : e[0].toUpperCase() + e.slice(1).toLowerCase())
            .join(" ")
    }
    1. 먼저, s(문자열)을 split을 통해 배열로 만들어준다.
    2. 이 배열의 각 요소를 map() 처리하는데, 빈 문자열('') 처리를 위해 위처럼 삼항연산자 형태로 적용했다.
    3. 빈 문자열이 아니라면, e의 첫 글자는 toUpperCase(), 나머지는 toLowerCase() 처리로 각각 대/소문자로 만든다.
    4. 마지막으로, 이를 다시 공백(" ")으로 join() 해서 문자열로 반환한다.

    🥋 Ooooth!! (Level 2) : N개의 최소공배수

     

    🧮 풀이

    function gcd(minNum, maxNum){
      return (minNum % maxNum) === 0 ? maxNum : gcd(maxNum, minNum % maxNum);
    }
    
    function lcm(minNum, maxNum){
      return minNum * maxNum / gcd(minNum, maxNum);
    }
    
    function solution(arr) {
      return arr.reduce((a,b) => lcm(a,b), 1)
    }
    1. gcd는 두 수의 최대공약수, lcm은 최소공배수를 각각 반환하는 함수이다. (gcd를 같이 쓴 이유는, lcm에서 활용되기 때문)
    2. 여러 수의 최소공배수는, 앞에 둘부터 최소공배수를 찾아 이를 뒤의 수와의 최소공배수로 누적해주면 된다. (reduce)

     

    🖇 리뷰

    어제 (3.15, 월), 3차 프로젝트 마무리로 인해 문제를 풀지 못하기도했고, 난이도가 높진 않아 오늘 2문제를 풀었다.

     

    오늘은 알고리즘적인 것보다는, 기본적인 메서드 활용 및 수학적인 문제이기 때문에 어려운 점은 없었다.

    다만, JadenCase에서 빈 문자열 예외처리에 애를 먹었다. 알고리즘을 작성하면서, 항상 예외 케이스에 대한 염두를 명심해야겠다.

    반응형
Designed by Tistory.