전체 글
[JS] 프로그래머스 lv3. 야근 지수
문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 제한 works는 길이 1 이상, 20,000 이하인 배열입니다. works의 원소는 50000 이하인 자연수입니다. n은 1,000,000 이하인 자연수입니다. 입출력 예시 works n result [4, 3, 3] 4 12 [2, 1, 2] 1 6 [1,1] 3 0..
[JS] 프로그래머스 lv2. [1차] 캐시
문제 설명 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 캐시 크기(cach..
[TS] JS to TS 과정에서 배운 type과 interface 의 차이점
type과 interface 는 유사한 점이 매우 많다. type과 interface는 객체의 타입의 이름을 지정하는 것인데 자유롭게 혼용되어 사용 가능하지만 둘 사이에는 차이와 한계가 분명히 존재한다. 원시 타입(Primitive Types) { type CustomString = string; const str: CustomString = ''; // ❌ interface CustomStringByInterface = string; } 타입은 원시 타입(symbol, boolean, string, number, bigint, etc.)을 정의할 수 있다. 반면에 인터페이스는 불가능하다. 타입은 새로운 타입을 만드는 것이 아니기 때문에 type alias로 불린다. 반면에 인터페이스는 항상 새로운 타입..
프론트엔드 데브코스 6월 회고록
벌써 6월이 다 지나가서 데브코스 처음 들어왔던 6월 1일부터 지금까지를 돌아보고자 합니다. 주변에 프론트엔드 공부를 하는 사람이 없었기에, 나의 실력을 확인하고 더 나아질 수 있는 환경이 주어지지 않는 것 같아서 프론트엔드 데브코스에 들어오게 되었다. 저 합격 시켜 주셔서 정말 감사합니다🥰 6월 한 달 간 내가 이룬 것 (데브코스 + 그 외) 1. 졸업 프로젝트 우수상 수상 졸업 프로젝트에서 "색각이상자를 위한 이미지 색상 변환 서비스"를 주제로 교내 창의설계경진대회 우수상을 받게 되었다. 매주 팀별로 랜덤 발표였는데 압박질문 + 실시간으로 앞에서 내 발표점수 매기고 있어서 너무 힘들었다. 너무 떨린데 잘 하고 싶어서 매주 청심환 먹고 학교 갔었던게 아직도 기억난다. 4개월 간 다 같이 고생했는데 보상..
[JS] 프로그래머스 lv2. 두 원 사이의 정수 쌍
문제설명 x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요. ※ 각 원 위의 점도 포함하여 셉니다. 제한 사항 1 ≤ r1 이때, y축 위의 값은 따로 고려하지 않는 이유 : 현재 1사분면 값만 구하고 있기 때문에 나중에 4를 곱할 때 개수가 중복되지 않게 하기 위함 3. y의 최댓값에서 y의 최솟값 +1 을 해주면 해당 x좌표에 두 원 사이의 정수 값이 나온다. 4. x 좌표가 r2이하일때까지 순회하여 answer 에 누적해서 더한다. 5. 반복문이 끝나면 제 1사분면의..
[TIL] 데브코스 TIL - 명령형과 선언형 프로그래밍, 선언형을 지향해야 하는 이유
한줄 요약 : 오늘은 명령형 프로그래밍과 선언형 프로그래밍의 차이 및 왜 선언형 프로그래밍을 써야하는지에 대해 공부했습니다.🔥 📍 오늘 배운 내용 1. 명령형 프로그래밍과 선언형 프로그래밍의 차이 1-1. 명령형 프로그래밍 명령형 프로그래밍은 "HOW"를 제시한다. 어떤 방법으로 어떻게 할것인지를 중점적으로 나타냄 ex) 명령형 프로그래밍 예시 코드 // 배열을 파라미터로 받으며, 각 요소에 1을 더해서 새로운 배열을 반환해주는 함수 function add(arr) { let results = []; for(let i=0; i 이 설명에 의하면 정말 어떻게 할것인지가 명확하게 나타난다. 1-2. 선언형 프로그래밍 선언형 프로그래밍은 "WHAT" 을 제시한다. 어떤 방법으로 해야하는지보다 무엇을 나타내야..
[TIL] 데브코스 TIL - this, 전역오염방지, 변수선언방식, 클로저
오늘은 Javascript 사전문제 7문제 풀고 해설강의 들으면서 배운 내용 + 느낀 점 정리해보려고 합니다 ⏰🔥 📍 오늘 배운 내용 1. this var thisTest = { whoAmI: function (){ console.log(this) // {whoAmI : f, testInTest :{}} (이 this는 thisTest 객체를 가리킴) }, testInTest : { whoAmI : function (){ console.log(this) // {whoAmI : f} (이 this 는 testInTest 객체를 가리킴) } } } this 는 현재 자신이 속한 (바로 상위) 객체를 가리킴 2. 함수를 선언하자마자 사용하는 방식 ex 1) (function(name){ console.log(..
[JS] 프로그래머스 lv3. 베스트 앨범
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..