전체 글
-
[프로그래머스] 표현 가능한 이진트리(JavaScript)Problem-Solving/Problem 2023. 11. 24. 18:01
🍀 목차 문제 설계 구현(JavaScript) 최종 코드 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 (1) 표현 가능한 이진트리 경우의 수(h = 1(최소)) 루트 노드가 0일때 루트 노드가 1일 때 (2) 더미 노드를 채워 포화 이진트리로 만드는 부분 높이가 h인 포화 이진트리 노드 수는 2^(h+1) - 1라는 것을 이용한다. 문제를 왼쪽 서브 트리, 루트, 오른쪽 서브 트리로 생각할 수 있다(분할 정복). 구현(JavaS..
-
[회고] 우아한테크코스 프리코스를 회고하며Daily-Life 2023. 11. 20. 23:14
🍀 목차프리코스란?1주 차2주 차3주 차4주 차1주 차 ➡️4주 차 프리코스란? 우아한테크코스는 우아한형제들에서 진행하는 웹 개발 교육과정이다. 프리코스는 해당 교육과정의 선발 과정 중 하나이며, 각 모집분야에 명시된 언어를 활용하여 약 한 달간 주어진 미션을 수행한다. 지원서를 제출하면 모두가 참여 가능하며 커뮤니티(디스코드)를 통해 지원자들끼리 다양한 공유활동(지난 과제 리뷰/개발 지식 공유/모각코 등)이 가능하다. 내가 프리코스에 참여하게 된 이유는 총 세 가지였다. 1. 무언가를 만들어 본 적이 너무 옛날이다. 프로젝트도 계속 흐지부지됐고, 그러다 보니 내가 정말 무언가를 만들 수 있을까? 에 대한 두려움이 생겼다. 간단한 것이라도 주어진 문제에 도전해보고자 했다.2. 테스트 코드를 맛볼 수 ..
-
[최소신장트리] 크루스칼(Kruskal) 알고리즘Problem-Solving/Algorithm 2023. 10. 29. 03:28
🍀 목차 크루스칼 알고리즘 같은 목적을 가진 알고리즘 기본 이해 구현(JavaScript) 시간 복잡도 크루스칼 알고리즘 최소 신장 트리 (MST : Minimum Spanning Tree) 알고리즘 중 하나. MST(Minimum Spanning Tree) 모든 정점을 잇는 최소 비용 Spanning Tree를 찾는 것이 목적. 무향 가중치 그래프에서 적용한다. 사이클이 포함되어서는 안 된다(트리는 사이클 없이 모든 정점이 연결되어 있는 그래프 자료구조). 기본적으로 그리디 알고리즘을 바탕으로 하고 있다. 항상 최소 비용을 찾고 탐욕적으로 선택한다. 간선 선택 기반 알고리즘이다. 간선을 가중치(비용) 오름차순으로 정렬하고 Union-Find 알고리즘을 적용하며 사이클 형성 유무를 판단하며 선택해 간다...
-
[JavaScript] 스코프(Scope)와 클로저(Closure)Front-End/JavaScript 2023. 4. 5. 04:07
🍀 목차 글의 목적 스코프 스코프의 구분 스코프 이해 + LHS, RHS 어휘적 스코프(Lexical Scope) 함수 레벨 스코프 vs 블록 레벨 스코프 클로저 클로저 예제 글의 목적 자바스크립트를 학습하다 보면 스코프(Scope), 클로저(Closure)라는 단어를 빈번하게 마주칠 수 있었다. 그럴 때마다 검색해서 대략적인 감만 잡고 넘어갔었다. 😎 "클로저가 무엇인가요?"라는 질문을 받았을 때, 내가 과연 이해한 답변을 할지, 외운 답변을 할지 생각해 봤을 때 후자에 가깝다고 느꼈다. 그렇기에 이 글은 자바스크립트의 스코프와 클로저를 이해하기 위해 작성됐다. 스코프 스코프는 자바스크립트뿐만 아니라 여러 프로그래밍 언어의 기본 개념이다. 우선, 아래 코드의 실행 결과를 예측해 보자. var x = '..
-
[프로그래머스] 표 병합(JavaScript)Problem-Solving/Problem 2023. 3. 6. 04:29
🍀 목차 문제 설계 구현(JavaScript) 최종 코드 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 MERGE와 UNMERGE 명령어를 구현하는 데 많은 고민을 했다. 테스트에서는 위의 명령어를 Union-Find로 접근했었으나 구현과정에서 시간이 부족하여 해결하지 못했다. 다시 풀어보니 문제에서 주어진 표의 크기가 50X50으로 크지 않은 편이어서 완전 탐색과 구현으로 해결할 수 있었다. 문제 설명에서 주의 깊게 봐야 할 내..
-
[JavaScript] 클린 코드 자바스크립트 강의 정리Front-End/JavaScript 2022. 12. 15. 00:04
🍀 목차 JavaScript 클린 코드? 변수 다루기 : 전역 공간 사용 최소화 변수 다루기 : 임시 변수 제거하기 타입 다루기 : 타입 검사, 형변환 주의하기, isNaN 경계 다루기 : 매개변수의 순서가 경계다 분기 다루기 : 값식문 분기 다루기 : 삼항 연산자 다루기, Truthy & Falsy Udemy 클린코드 자바스크립트(강사 장 현석님(Poco Jang), https://www.udemy.com/course/clean-code-js/) 강의를 개인적으로 정리하다 복습 겸 깔끔하게 포스팅하고 싶었다. 나쁜 코드인 이유와 습관을 고쳐주시는 강의였다. 모든 강의 내용 정리가 아니기에 내용이 흥미로우시다면 수강 추천드립니다! 👍 JavaScript 클린 코드? 해당 강의는 클린 코드에 대해 고민하는..
-
[JavaScript] 정규 표현식(Regular Expression) 정리Front-End/JavaScript 2022. 9. 21. 06:16
🍀 목차 글의 목적 정규 표현식이 뭘까? in JavaScript 응용 모음 시간 복잡도 학습에 도움이 되는 사이트 글의 목적 정규 표현식을 이해하고 JavaScript에서의 다양한 사용법을 정리하기 위해 작성됐다. 정규 표현식을 사용하면 문자열에서 특정 패턴을 찾고, 매칭 되는 것들을 배열로 받는 등 문자열 처리를 매우 편하게 할 수 있다. 웹 사이트의 이메일, 패스워드의 유효성 검증에도 자주 사용된다. 알아두면 손해는 안 보는 정규 표현식! 정규 표현식 객체(RegExp)의 메서드와 String 메서드, 다양한 예제로 정규 표현식을 이해해보자. 🔥 정규 표현식이 뭘까? 정규 표현식(Regular Expression(RegExp, Regex), 정규식)은 문자열에서 특정 내용을 매칭 하는 데 사용된다...
-
[프로그래머스] 등산코스 정하기(JavaScript)Problem-Solving/Problem 2022. 9. 7. 17:34
🍀 목차 문제 설계 구현(JavaScript) 최종 코드 훔쳐보기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118669 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 코딩 테스트에서 이 문제를 마주쳤을 때는 DFS로 접근했었는데, 테스트 케이스에서 틀리고 시간 복잡도도 엄청났던 코드였다. 몇 개월 뒤 다시 보니 시작 정점에서 목적 정점까지의 최소 거리를 구하는 다익스트라알고리즘으로 접근할 수 있는 문제라고 생각했다. 그러나 몇 시간 동안 헤맸지만 테스트 케이스 3개에서 계속 시간 초..