profile
안녕하세요 프론트엔드 개발자를 꿈꾸는 엄강우입니다.

프로그래머스 - 택배 배달과 수거하기

사실 크게 어렵지 않은 문제라 생각했지만 정답에 가까운 답을 도출하는데는 꽤 많은 시간이 걸렸고 어려운 문제는 아니지만 나의 풀이법을 소개하고 싶어 포스팅하게 되었습니다.처음에는 모든 택배상자를 배달하고 픽업하는 한번의 사이클을 매번 시행하는 방식으로 접근하였습니다.

2023년 1월 12일
·
1개의 댓글
·

프로그래머스 - 표현 가능한 이진트리

일단 숫자를 가지고 이진수로 만든다.그 이진수를 가지고 가능한 포화 이진트리를 만든다포화 이진트리가 가능한지 확인한다.숫자를 이진수로 만드는 과정은 흔히 사용하는 방법을 이용해서 만들었습니다. 숫자를 계속해서 2로 나누면서 나머지를 저장하고 그 나머지들을 뒤집으면 우리

2023년 1월 11일
·
0개의 댓글
·

모던 자바스크립 Deep Dive) 9장 타입변환과 단축평가

암묵적 타입 변환이 명시적 타입변환보다 짧게 활용할 수 있지만 다른 사람이 보았을때도 어떤 의도를 가지고 암묵적 타입변환을 이용했는지에 대해 알 수 있어야 한다.Truthy한 값들0을 제외한 숫자''을 제외한 문자열객체Falsy한 값들0''nullundefinedtru

2022년 12월 26일
·
0개의 댓글
·

명시적인 type guard 사용해보기

타입스크립트를 사용하다보면 유니온 타입을 자주 이용하게 되는데 이런 유니온 타입을 더 유연하게 사용하기 위해서는 타입가드를 해주어야합니다. 타입가드를 사용하는 방법 몇 가지에 대해 알아 보겠습니다.typeof는 원시 타입에만 사용할 수 있습니다. 그래서 객체의 타입이

2022년 12월 26일
·
0개의 댓글
·

834. Sum of Distances in Tree

임의의 노드를 루트로 지정한 뒤트리를 타고 내려가면서 각 노드의 서브트리 크기를 저장합니다.트리를 타고 내려가면서 루트노드의 DistanceAcc를 구합니다.구하는 로직은각 노드에서 DistanceAcc와 size를 구하고상위 노드는 하위 노드의 distanceAcc

2022년 12월 22일
·
0개의 댓글
·

모던 자바스크립 Deep Dive) 4장 변수

변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙힌 이름을 말한다.다시 말하자면 변수는 프로그래밍 언어에서 값을 저장하고 참조하는 메커니즘으로, 값의 위치를 가르키는 상징적인 이름이다.코드는 컴퓨터에게 내리는 명령이지만

2022년 12월 21일
·
0개의 댓글
·

주니어 개발자들이 useEffect를 사용할때 자주 하는 실수 2편.

저번 포스팅에 이어서 계속해서 useEffect에 대해 알아 보겠습니다.이번 포스팅의 주제는 cleanUp입니다.다음과 같이 useEffect를 사용해서 1초에 1씩 늘어나게 만들었습니다. 그럼 무엇이 문제일까요? 정답은 이 컴포넌트를 마운트 할때마다 setInterv

2022년 11월 23일
·
0개의 댓글
·

주니어 개발자들이 useEffect를 사용할때 자주 하는 실수 1편.

이 글은 평소와 같이 유튜브를 보다가 굉장히 도움 될만한 정보라고 생각해서 소개할겸 저 스스로도 리마인드 할겸 블로그에 저장해두려고 합니다. 이 글의 주제는 제목과 같이 useEffect를 사용할 때에 쉬이 간과할 수 있는 부분을 소개합니다.혹시라도 저의 글이 아닌 원

2022년 11월 22일
·
0개의 댓글
·

우아한테크코스 프리코스 2주, 3주차 통합 회고

사실 프론트엔드라는 이유로 그리고 React를 이용하고 함수컴포넌트를 주로 사용한다고 해서 OOP에 대해 깊게 알려고 하지 않았던 것 같습니다. 그러다보니 Class객체에 대해서도 잘 모르고 this도 마찬가지로 잘 모르고 있었습니다. 이번 회고는 잘 알지 못했던 객체

2022년 11월 16일
·
0개의 댓글
·

느지막한 우테코 프리코스 1주차 회고

간단한 문제에 대한 정답을 도출하는 과제를 만들었습니다. 그리 어렵지 않았으니 구현은 냅두고 코드리뷰를 통해 얻은 포인트만 정리 하겠습니다.1\. 하드코딩크롱이 크면 1을 작으면 2를 같으면 0을 리턴하는 함수가 있다고 합시다.이런식으로 코딩을 햇습니다. 그러면 이 코

2022년 11월 9일
·
0개의 댓글
·

Leetcode) Earliest Possible Day of Full Bloom

문제는 Greedy하게 풀어야 했으며 이 메커니즘에 대해 이해 해야햇습니다.모든 씨앗은 그 전에 심은 씨앗들의 plantTime을 다 더한 것보다 day가 커야 심을 수 있다.그렇다면 어떻게 해야 가장 optimal하게 심을 수 있을까?가장 중요한 것이 씨앗이 자라는

2022년 10월 29일
·
0개의 댓글
·

76. Minimum Window Substring

개략적으로 얘기하면 배열에서 가장 처음 만족하는 배열의 시작 index와 끝index를 찾습니다.그리고 while을 통해 또 다른 배열의 조합이 있을때까지 찾습니다.찾는 방법은 left위치의 문자와 right위치의 문자가 같을때 까지 right를 늘립니다.그리고 원하는

2022년 10월 23일
·
0개의 댓글
·

20220906 TIL

이전에 this는 함수가 호출 될때를 잘 보아야 한다고 했다. 그래서 함수 호출부 즉 함수 호출코드부터 확인하고 this가 가르키는 것이 무엇인지 찾아보도록 하겠습니다.함수의 호출 지점으로 돌아가면 금세 확인할 수 있을거 같지만 코딩 패턴에 따라 그리 쉽지 않는 경우가

2022년 9월 6일
·
0개의 댓글
·

You don't know JS) 클로저

함수가 속한 렉스컬 스코프를 기억하여 함수가 렉시컬 스코프 밖에서 실행 될 때에도 이 스코프에 접근할 수 있게 하는 기능을 말한다.가장 유명한 예를 보자baz()함수의 스코프에는 a가 있는 foo스코프 밖임에도 불구하고 우리는 baz함수를 실행하였을때 a의 값에 접근

2022년 8월 30일
·
0개의 댓글
·

20220830 TIL

그 이유를 일단 얘기하자면 컴파일러는 컴파일레이션 단계 그리고 실행단계를 거치기 때문이다.예를 보면다음과 같은 js파일이 있으면 모두가 알다시피 log의 결과로 2가 출력될 것이다.컴파일레이션 단계에서 var a가 실행되고실행 단계에서 a=2; console.log(a

2022년 8월 30일
·
0개의 댓글
·

20220829 TIL

엔진은 스코프 버블의 구조와 상대적 위치를 통해 어디를 검색해야 확인자를 찾을 수 있는지 안다.다음과 같이 함수를 정의 하면 스코프 버블은 3개로 나눌 수 있다.foo()가 정의된 글로벌 스코프b와 bar가 정의된 foo()스코프그리고 bar()스코프그럼 어떤식으로 검

2022년 8월 29일
·
0개의 댓글
·

20220826 TIL

프로그래밍을 하면 변수를 저장하고 변수를 다시 사용하기 마련이다. 그러기 위해서는 특정 규칙이 필요한데 이러한 규칙을 스코프라 한다.자바스크립트는 컴파일러 언어이며 소스코드가 실행 되기 전에 컴파일레이션단계를 거치게된다. 이는 3단계로 이루어져 있는데토크나이징/렉싱파싱

2022년 8월 26일
·
0개의 댓글
·

Leetcode) 857. Minimum Cost to Hire K Workers

일단 문제 해석을 하자면 어떤 idx를 기준으로 그 k개의 worker그룹을 만드는데 그룹에 속할 수 있는 기준은 어떤 idx를 기준으로 어떤 조건을 만족해야 한다.조건은 인덱스가 idx가 아닌 인덱스 j가 wage\[idx] / quality\[idx] \* qu

2022년 8월 26일
·
0개의 댓글
·

20220823 TIL - JS

,연산자는 =연산자보다 우선순위가 낮다.&&와 ||는 순서대로 동작하는 것이 아니라 &&가 우선순위를 가진다.단락 평가는 &&과 ||을 이용한 특성으로&&앞에 falsy한 값이 오면 뒤에 값을 평가하지 않고 앞의 값으로 인식한다.당연하게도 &&의 앞에 falsy한 값이

2022년 8월 23일
·
0개의 댓글
·

JavaScript 문법 (1)

모든 문은 완료값을 가진다.세 가지의 문의 예를 적었는데 이 3가지는 모두 표현식 문 이라 일컷는다. 그리고 이 문들의 완료값은 각 각 undefined, undefined, 29이다. 이로써 선언문의 완료값은 undefined 할당 문의 완료값은 할당된 값이라는 것을

2022년 8월 22일
·
0개의 댓글
·