22.04.29 개발 일기

Leekimoon·2022년 4월 29일
0

개발 일기

목록 보기
5/21

한줄요약 : DOM 조작은 어렵지만 재밌다. !!

오늘의 계획

1) JavaScript 실습 예제 1~6 해보기

2) LeetCode 문제 풀기

- Move Zeroes
- Sort Array By Parity
- Height Checker
- Third Maximum Number

오늘은 온라인 강의는 자료구조를 떠나 JavaScript 예제를 풀면서 DOM 조작을 하였다.
사용 했던 키워드를 나열 하면

EventListener("keydown", "click") HTML/CSS ("style", "ClassList", "remove")

등을 사용하여 실습 예제를 들을 풀었다.
자료구조 문제만 풀다가 Js로 html/css 를 조작하려 하니 이전에 공부 했던게 아직 몸에 배지 않아 처음에 생각처럼 조작이 되지 않아서 실습 예제를 하면서 인라인 스타일을 추가해서 조작하거나, 값들을 변경하며, 예제들을 풀었는데 이런예제를 풀면서 원하는 결과가 나올때는 재밌어서 이것저것 시도해보게 되는거 같다.

LeeCode 문제를 살펴보면 1번 문제는 배열이 값으로 들어오면 0을 뒤로 0이 아닌 숫자들을 앞으로 땡기는 문제였는데, 이제는 for문이 익숙해져 이중 for문으로 완전탐색하여 값들을 탐색하고 변경하였다.
2번 문제는 1번문제와 비슷하지만 짝수를 탐색하여 앞으로 홀수를 탐색하여 뒤로 보내는 문제였는데, 이 문제는 짝수 와 홀수 탐색을 따로 해 O(n+m) 시간복잡도를 가지는 for문을 2번 사용 하여 해결 하게 되었다.
3번 문제는 입력 값으로 들어오는 배열 중 고유한값(중복값이 없는) 을 찾아 오름차순으로 정렬을 하는데 기존 인덱스에서 이동한 숫자들이 몇개 인지 반환하는 문제였는데, sort함수로 정렬 후 고유값을 탐색해 반환하는 것으로 해결 하였다.
4번 문제 마지막 4번문제인데 ... 오늘은 이 문제가 시련을 주었다.
최대값을 찾는 문제였는데 최대값 중에서 3번째 최대값을 반환해야하고, 배열 크기가 3보다 작거나 중복값으로 최대값 3번째 값이 없으면 최대값을 반환하는 함수였는데, 문제를 이해하고 코드로 만드는 과정이 만만치 않았다. 1시간이 넘는 시간동안 작성하고, 예외처리 하고 했지만 결국 해결 하지 못해 다른 분 코드를 참고하여 해결하고 분석하는 시간을 가지게 되었다.

이번주 내내 자료구조 문제만 하다가 실습예제로 자료구조를 벗어나서 완전한 페이지는 아니지만 페이지들을 조작 하니 재밌고, 자료구조를 하다보니 익숙해진 배열 이해도가 함수를 만들거나 조작하게 될때 도움이 되어서 좋았다. 이상 끝 !! (❁´◡`❁)

profile
FrontEnd Developer

4개의 댓글

comment-user-thumbnail
2022년 4월 29일

각 문제들에 대해서 다른 방식의 해결법을 볼 수 있어 좋았습니다! 🙌

답글 달기
comment-user-thumbnail
2022년 4월 29일

이제 배열이 많이 익숙해진 것 같아서 좋습니다.
진짜 그 배열101과 같은 묶음이 정말 좋은 것 같습니다.

1개의 답글
comment-user-thumbnail
2022년 4월 29일

leetCode 문제도 같은 easy 난의도지만 점점 더 시간이 오래 걸리는 것 같습니다..ㅎㅎ 그만큼 성장하고 있다는 증거겠지요?! 오늘도 열심히 해주셔서 감사합니다 수고하셨어요~😄

답글 달기