본문 바로가기

항해99

[항해99]TIL_알고리즘2

반응형

💻 알고리즘 2일차 JavsScript


1번 문제 : 핸드폰 번호 가리기

1.1 풀이 : repeat(), slice() 메서드 사용

function solution(phone_number) {
    let result = "*".repeat(phone_number.length -4) + phone_number.slice(-4);
    return result;
}


// (파라미터의 길이 -4만큼 문자 "*"을 입력) + (파라미터의 마지막 4자리를 분리) = *******1234

 

1.2 정규식을 이용한 풀이 (코드는 최대한 간결하게 짜는게 좋다지만.. 오히려 정규식이 알아보기 어려울지도?)

function solution(s) {
  return s.replace(/\d(?=\d{4})/g, "*");
}

2번 문제 : x만큼 간격이 있는 n개의 숫자

2.1 풀이 : 반복문, .push() 메서드 사용

function solution(x, n) {
    var answer = [];
    for (let i=1; i<=n; i++){	//반복문사용 1부터 n까지 * x와 곱한값을 answer에 .push한다.
        answer.push(x*i);
    }
    return answer;
}

3번 문제 : 2016년 (프로그래머스 2016년 요일 구하기)

3.1 풀이 : new Date(), toString(), slice(), toUpperCase()

function solution(a, b) {
    let day = new Date(`2016,${a},${b}`).toString(); 
    return day.slice(0,3).toUpperCase(); }

// new Date()의 결과값을 문자열로 변경하면, 결과값에 (요일, 월, 요일, 연도)가 출력됨.
// 결과값의 요일 부분을 분리 slice(0,3), 정답은 대문자를 요구함으로 toUpperCase()로 Capitalize한다

4. 항해특강_알고리즘을 대하는 자세

4.1 팁
 - 초보단계에선 1문제로 30분 이상 고민하지마라. 초심자는 고민해서 꺼내쓸만한 배경지식이 없다. 문제유형과 문법 등과 친숙해져라. 단,     2주 쯤 지났을때 다시 풀어볼 것.

 - 결국엔 "양"이 중요하다. 하루에 2~3문제씩 풀자.

 

4.2 공략법

 - 입력 값, 처리, 출력 값을 구분하여 접근하라.

 - 배경지식, 구현력, 문재해결 능력이 필요하다.

 - 코딩테스트는 기초지식 + 구현력을 위주로 본다.

 

4.3 기초지식

 - 시간 복잡도, 공간복잡도, 배열, 정렬, 배열의 탐색, 이분 탐색, 스택 큐, 해쉬, 힙, DFS, BFS

반응형

'항해99' 카테고리의 다른 글

[항해99]TIL_알고리즘4  (1) 2021.11.11
[항해99]TIL_알고리즘3  (0) 2021.11.10
[항해99]TIL_알고리즘1  (0) 2021.11.08
JWT  (2) 2021.11.07
[항해99]Week 1_WIL  (1) 2021.11.07