오공오쓰
article thumbnail
[프로그래머스] 두 큐 합 같게 만들기 (JS)
Algorithm 2024. 2. 21. 22:09

풀이 아이디어 더할 때의 큐의 길이는 같을 필요가 없다는 것이 개인적으로 중요한 포인트였다. 합계를 구할 때 큐의 길이를 맞출 필요가 없으므로 각 큐의 합을 구해서 합이 큰 쪽의 큐에서 pop한 원소를 작은 쪽의 큐에 push 해주는 방식으로 합을 조정해나갔다. 실패 해결 시간초과 군데군데 시간초과가 났다. 시간초과의 원인은 안봐도 shift가 원인일것 (예상은 했지만 그냥 질러본건데 역시나였다... 😩) shift는 가장 앞 원소를 빼고 나머지 원소들을 싹 재배치하는 엄청난 메소드이기 때문에 O(n)의 시간복잡도를 갖는다. 시작 인덱스만 잘 관리해준다면 shift로 가장 앞 원소를 지워줄 필요가 없으므로 큐 데이터에 시작 인덱스를 저장하도록 변경했다. const queueData1 = { frontId..

article thumbnail
[원티드 프리온보딩 11월 FE] 1주차 1회 강의 정리
Study 2023. 11. 7. 00:25

원티드 프리온보딩 11월 강의를 듣고 정리한 내용입니다. 자세한 내용이 궁금하시다면 아래 강의에 담겨있다고 하시니 참고해주시면 되겠습니다... 🥹 - https://www.udemy.com/course/clean-code-js/ - https://www.udemy.com/course/clean-code-react/ 들어가면서 요새 코드리뷰를 하거나 받는 경우가 많아지면서 클린코드에 대해 굉장히 고민을 하고 있었는데 마침 원티드 프리온보딩 강의 주제로 클린코드가 나와서 속으로 비명을 질렀다. 그냥 단순 코드의 가독성에도 고민이 많았는데 리액트 클린코드까지 한번에 선배 개발자분의 견해를 들을 수 있다고 하니 정말 소중한 시간이라고 생각해서 열심히 들어보기로 했다. 시작! 클린코드에 대해 고민하기 클린코드에 ..

article thumbnail
[Chrome Extensions Tutorials] Getting Started Guides
TIL 2023. 10. 16. 20:38

https://developer.chrome.com/docs/extensions/ 를 읽고 크롬 확장 프로그램 프로젝트를 위해 필요한 내용만 정리했습니다. Extensions 101 What are extensions? Chrome Extension이란 Chrome 브라우저에 기능을 추가해서 좀 더 나은 브라우징 경험을 제공하는 프로그램입니다. Extension files extension에 자주 쓰이는 파일들 (보통 extension에는 아래의 파일들이 포함되어 있습니다.) The manifest : 확장 프로그램의 manifest는 manifest.json 이라는 특정한 이름을 가져야 하는 유일한 필수 파일입니다. 확장 프로그램의 루트 디렉토리에 위치해야 합니다. 중요한 메타데이터를 기록하고, 리소스..

article thumbnail
[react-query] useInfiniteQuery의 getNextPageParam과 hasNextPage
TIL 2023. 9. 15. 02:41

분명히 나중에 까먹을 것 같기에 바보같은 실수를 기록해둡니다... 중요한 내용은 절정 (적절한 방법으로 에러를 해결하다) 부분에 나옵니다. 발단 (에러를 발견하다) 상점에서 구매한 아이템에 무한스크롤을 적용하기 위해서 react-query의 useInfiniteQuery 훅을 사용하고 있었다. 문제 없이 잘 쓰고 있던 중에 가끔씩 page 쿼리로 null이 보내지는 에러가 발생한다는 것을 알게 되었다. 그래서 숫자로 들어와야 할 쿼리가 null이라는 문자열로 들어오는 바람에 api 자체에서 타입에러가 발생해버렸다. 🥲 { "status": 400, "message": "Failed to convert value of type 'java.lang.String' to required type 'java.la..

article thumbnail
[프로그래머스] 외톨이 알파벳 (JS)
Algorithm 2023. 9. 9. 23:58

문제 알파벳 소문자로만 이루어진 어떤 문자열에서, 2회 이상 나타난 알파벳이 2개 이상의 부분으로 나뉘어 있으면 외톨이 알파벳이라고 정의합니다. 문자열 "edeaaabbccd"를 예시로 들어보면, a는 2회 이상 나타나지만, 하나의 덩어리로 뭉쳐있으므로 외톨이 알파벳이 아닙니다. "ede(aaa)bbccd" b, c도 a와 같은 이유로 외톨이 알파벳이 아닙니다. d는 2회 나타나면서, 2개의 부분으로 나뉘어 있으므로 외톨이 알파벳입니다. "e(d)eaaabbcc(d)" e도 d와 같은 이유로 외톨이 알파벳입니다. 문자열 "eeddee"를 예시로 들어보면, e는 4회 나타나면서, 2개의 부분으로 나뉘어 있으므로 외톨이 알파벳입니다. "(ee)dd(ee)" d는 2회 나타나지만, 하나의 덩어리로 뭉쳐있으므로..

article thumbnail
8월 근황
Diary 2023. 8. 31. 02:17

8월 일기 시간이 너무 빠릅니다... 42gg 4기 Coding run 🔥 열심히 개발하고 있습니다... 비록 게으른 자가 팀장이라 (본인임) 태풍핑계 징검다리 휴일(?>??) 핑계로 좀 쉬는날을 갖긴 했지만 쉬는 날을 가져버리니 엄청나게 늘어진다는 것을 몸소 경험하고 다시 열심히 클러스터에 출근하여 신기능(!!) 개발 중 아마 큰 문제가 없다면 9월 중반쯤엔 무조건 배포하게 될 것 같은데 지금 추가된 기능들이 개발 자체는 그렇게 어렵진 않지만 유저의 체감으로는 엄청 큰 업데이트라고 생각될 것 같아서 좀 많이 떨린다........................ 진짜 떨립니다 사실 기능적인 문제로는 그렇게 걱정이 없는데 기획 자체에 불호 의견이 나올까봐 너무 떨림.... (기획자님이 필요합니다...) 그리고..