본문 바로가기
알고리즘/Programmers

[TIL] 2023.03.18 Programmers 문제 풀기

by heereal 2023. 3. 18.

Today I Learned

  • Programmers 문제 풀기
  • 오전에 합격하는 모의면접 대비 특강
  • 기술면접 준비

 


Programmers 문제 풀기

    수박수박수박수박수박수?

    나의 풀이

    function solution(n) {
        return Array(n).fill().map((v, i) => i % 2 === 0 ? "수" : "박").join("")
    }

    어제 배웠던 Array.fill에 map 돌려서 문제 풀었다.

     

    다른 사람의 풀이 01

    function waterMelon(n){
      var result = "수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박"
      return result.substring(0,n);
    }

    이 재밌는 답변은 뭐지? ㅋㅋㅋㅋㅋ

     

    • substring() 메서드는 string 객체의 시작 인덱스로부터 종료 인덱스 전까지 문자열의 부분 문자열을 반환합니다.
    const str = 'Mozilla';
    
    console.log(str.substring(1, 3));
    // Expected output: "oz"
    
    console.log(str.substring(2));
    // Expected output: "zilla"

     

     

    다른 사람의 풀이 02

    const waterMelon = n => "수박".repeat(n).slice(0,n);

    "수박"을 repeat 한 다음에 slice메서드로 자른다!

     

     

    가운데 글자 가져오기

    나의 풀이

    function solution(s) {
        let mid = s.length / 2;
        return s.length % 2 === 0 ? s[mid-1] + s[mid] : s[Math.floor(mid)];
    }

    다른 사람들 풀이를 보다가 알게 된 건데 값이 0인 경우 false가 되기 때문에 굳이 === 0으로 적어줄 필요가 없다.

    • Falsy 값에는 빈 문자열 '', 숫자 0, 불리언 falsenullundefinedNaN가 해당됩니다.

     

     

    다른 사람의 풀이 01

    function solution(s) {
        return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
    }

    원래 slice 메서드 써봤다가 실패했었는데 바로 위에 문제에서 배웠던 substr를 쓰면 되는 거였다. 근데 substr 메서드는 더 이상 사용되지 않는다고 해서 substring 메서드를 이용해서 다시 풀어봤다.

     

    function solution(s) {
        let mid = s.length / 2;
        return s.length % 2 === 0 ? s.substring(mid-1, mid+1) : s.substring(mid, mid+1);
    }

    substring 메서드로 다시 풀어 본 방법👍

     

     

    내적

    나의 풀이

    function solution(a, b) {
        return a.reduce((acc, cur, i) => acc + cur*b[i], 0);
    }

    reduce 메서드에 index 이용해서 풀었다.

     


    회고

    최종발표회 때 부스 방문하셨던 선배님이 팁을 주셔던 대로 노션에 토글 형태로 만들어서 예상 기술면접 답변을 정리하고 있다. 포인트는 무조건 모범 답안을 복붙 하는 것이 아니라 나만의 언어로 정리하는 것! 이러니까 확실히 개념 공부도 되고 좋긴 한데 시간이 오래 걸린다. 그래도 이렇게 보니까 주말에 나와서 공부한 보람도 있고 뿌듯하네~😊

     

     

     

    댓글