210203_TIL

김재헌·2021년 2월 3일
post-thumbnail

알고리즘

알고리즘하면 뭐가 생각나는가? 유튜브?? 알고리즘하면 뭔가 굉장히 어렵고 복잡한 개념이 생각난다. 하지만 우리가 요리할 때 보는 레시피도 알고리즘의 하나이다.

쉬운 예로 내가 라면을 끓일 때 거치는 '과정'이 알고리즘이다.

  1. 물을 냄비에 500ml 넣는다
  2. 냄비를 레인지 위에 올린다
  3. 불을 강불로 올린다
  4. 물이 끓으면 스프와 함께 면을 넣는다
    .
    .
    .
    이렇게 내가 생각하고 행동하는 모든 '과정'이 알고리즘이 된다.

그럼 프로그래밍에서 알고리즘이 무엇인지 생각해봐야한다. 주어진 문제를 해결하기 위해서 어떠한 방법으로 문제를 풀어나가야 할 지 생각하고 코드로 작성해야한다. 이러한 과정을 조금 더 편하게 해주는 것이 바로 수도코드이다. 오늘 Checkpoint(리뷰)를 하면서 진행하는 엔지니어분도 수도코드를 굉장히 강조하셨다. 내가 당장 코드를 쓸 수 없더라도 A4 100장을 넘게 글로 채워서라도 문제를 해결할 수 있는 논리를 생각해내면 된다고 하셨다. 원래 코드를 적기전에 짧게 수도코드를 작성하고 시작하곤 했었는데 앞으론 모든 과정을 풀어서 써보고 코드를 작성하는 습관을 들여야겠다.

구주이배
구하고자 하는 것은 무엇인가?
주어진 것은 무엇인가?
이것을 어떻게 활용할 것인가?
배운 것은 무엇인가?


그러뭍기

내가 사고 싶은 노트북이 있다. 그럼 노트북의 정보가 쭉 있을 것이다. 그 정보 중에서 제조회사를 알고 싶다.
map
어떤 회사에서 제조한 지 알고 싶다. *n개를 줘서 n개를 받는다
filter
삼성(특정 회사)에서 제조한 노트북만 알고 싶다. *n개를 줘서 n개 이해로 받는다
reduce
내가 원하는 블로그만 북마크에 함축하고 싶다.

Number.MAX_SAFE_INTERGER // 9007199254740991
//JS에서 제공하는 안전한 최대 정수값
Number.MIN_SAFE_INERGER // -9007199254740991
//JS에서 제공하는 안전한 최소 정수값

for문을 조건없이 반복시키고 싶을 때

for (let i = 0; true; i++) // 알고나면 굉장히 단순하지만 알기전까지 생각하지 못했다
profile
개발자되려고 맥북샀다

0개의 댓글