JavaScript 3

[프로그래머스] 2023 KAKAO BLIND RECRUITMENT > 택배 배달과 수거하기 (javascript)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150369 문제 [한 트럭에 실을 수 있는 상자 수] [총 집 수] [각 집에 배달할 갯수] [각 집에서 수거할 갯수] 를 input 으로 받아 [모든 상자를 배달하고 모든 빈 상자를 수거하는 최단거리] 를 구하는 문제이다. 물류창고에서 상자를 싣고 빈 상자를 내려놓을 수 있으며, 왕복은 여러 번 할 수 있다. n개의 각 집은 물류창고로 부터 [1, 2, 3, ....., n] 의 거리이며 인접한 두 집 간의 거리는 1 이다. 문제 원본을 보려면 아래를 펼쳐 보자. 더보기 풀이 입출력 예시에 힌트가 전부 나와 있다. 트럭에 상자를 cap 만큼 싣고 가장 먼 집 까지 배달했다가, 빈 상자..

[프로그래머스] 2023 KAKAO BLIND RECRUITMENT > 개인정보 수집 유효기간 (javascript)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스의 개인정보 수집 유효기간 문제이다. 문제 [오늘 날짜] [개인정보 수집 약관 종류] [등록된 사용자별 개인정보 수집약관 리스트] 를 input 으로 받고 [유효기간 만기 된 수집약관 리스트] 를 return 하는 문제이다. 문제 원본을 보려면 아래를 펼쳐 보자. 더보기 풀이 1. createTermsMap(terms) 메서드로 이용약관 종류를 정리한 key-value Map을 만든다. function createTermsMap(terms) { return terms.reduce((acc, curr)=> { const [termName, term] = curr.sp..

TypeScript 공부

Interface vs Class : interface 는 typescript 가 컴파일 타임(코딩할 때)에 타입 체크를 해주기 위한 '구조체' 같은 것(객체 타입을 정의하는 게 아님! 타입 체크를 위해 임시로 만드는 dummy 타입 이라 생각하자). 즉 컴파일 돼서 js 화 되면 사라진다. 반면에 class 는 객체 타입을 새로 정의하는 것이며, 객체 프로퍼티/메소드 를 갖고 있고, 컴파일 해서 js 화 해도 (런타임) 남아 있다. 불필요한 메모리/파일크기 낭비를 막기 위해선 interface 를 쓰면 되겠고, 클래스 로써의 기능이 꼭 필요한 경우라면 class 를 쓰면 되겠다. 참고 : https://stackoverflow.com/questions/51716808/when-use-a-interfac..