22.05.23 개발 일기

Leekimoon·2022년 5월 23일
0

개발 일기

목록 보기
19/21

오늘의 계획

1) LeetCode 문제 풀기
2) 제로베이스 JavaScript 과제 하기

LeetCode 문제 목록

  1. Climbing Stairs
  2. House Robber
  3. Triangle

오늘의 LeetCode 문제는 Dynamic Programming 카테고리를 가지는 문제들이였는데,
난이도는 Easy, Medium, Medium 이였지만 첫번째는 제로베이스 강의 수강중 언급 되었었던 부분이여서 피보나치수열 문제라고 파악을 할수 있었지만, 나머지 문제들은 배열로 값들을 접근해서 푸는 문제였다.

2번 문제 먼저 리뷰하면 해당 문제는 랜덤한 배열 길이에 숫자값들이 입력으로 들어오는데, 해당 숫자 합중에 가장 큰 값을 찾는것인데 조건이 연속된 인덱스 값들은 합할수 없다는게 조건이였다.
처음에는 짝수 인덱스와 홀수 인덱스로 값을 저장하고 큰값을 리턴하는 방식을 사용했는데, 해당 방법으로는 값이 붙어 있더라도 큰수가 있으면 사용해야되는 경우의 수를 대응하지 못해서 다른 방식이 필요했는데, 해당 방법은 이런저런 시도후에도 답을 찾지 못해서 다른 코드를 참고했다. 해당 코드는 Math 함수를 사용해 쉽게 문제를 풀었다.

3번 문제 같은 경우는 2차원 배열 형태로 피라미드 모양을 이루면서 값들이 주어지는데, 문제를 풀때 위에서 부터 접근을 해서 순차적으로 내려가야지 생각을 하며 풀었는데 음수 정수 섞여있는 배열 같은 경우 대응을 하지 못해서, 다른 사람 코드를 참고하여 풀었는데 아래서 부터 값을 비교하며 올라와서 정답을 도출하는 코드였고 다른 문제 유형에서도 이 코드를 사용하여 풀 수 있도록 이해해야 할 것 같다.

현재 제로 베이스 JavaScript 과제를 진행중에 있는데, 막혔던 부분에 대해서 간략히 정리하고 글을 마무리 하려한다.

html에서 이벤트를 조작할때 위에 그림 처럼 위에서 부터 아래 태그들까지 이동하게 되는데, 과제를 진행하기 전에는 아무 생각없이 이벤트리스너를 사용 했지만, 동작이 정확히 이뤄지지 않고 부모 요소와 자식요소들이 정확하게 동작하지 않아서 해당 흐름도와 console.log로 조작 되어지는 위치를 파악해서 문제를 해결 할수 있어서 해당 흐름도를 정리하며 마무리 한다.

profile
FrontEnd Developer

3개의 댓글

comment-user-thumbnail
2022년 5월 23일

와! 이벤트의 흐름을 정리해주시니 한 눈에 잘 들어오네요!! JavaScript 과제도 기대 됩니다.. ㅎㅎ 그리고 다이나믹 프로그래밍은 저에겐 아직 낯선 친구인 것 같습니다... 너무 어려웠네요 ... 수고하셨습니다 😆😆

답글 달기
comment-user-thumbnail
2022년 5월 23일

한눈에 그림으로 볼 수 있어서 좋습니다. 과제를 시작하면 다시 들어와서 확인해보면 도움이 많이 될 것 같습니다👍👍👍👍

답글 달기
comment-user-thumbnail
2022년 5월 23일

저도 이벤트 리스너를 사용할 때 큰 생각을 안하고 사용하고 있었는데..! 해당 흐름도를 생각하면서 사용해야겠네요🤭

답글 달기