본문 바로가기 메뉴 바로가기

개발새발 민다니

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발새발 민다니

검색하기 폼
  • 분류 전체보기 (224)
    • Oops, All Code! (141)
      • 🛠 Oops, My Code! (9)
      • 📚 Tech Shelf (0)
      • 📝 Study Notes (71)
      • 🎨 Codefolio (1)
      • 🚀 Woowacourse (6)
      • 🤯 Oops, My Algorithm! (48)
      • 🧩 BoostCamp (6)
    • Not Code, Just Life (82)
  • 방명록

js (8)
( ु ´͈ ᵕ `͈ )ु JS:: 백트래킹(Backtracking) 알고리즘과 완전탐색 알고리즘

백트래킹(Backtracking) 개념가능한 모든 해결책을 탐색하면서 조건에 맞지 않으면 돌아가 다시 시도한다.문제 해결을 위한 모든 경우의 수를 고려하는 동시에,조건에 맞지 않는 경로라면 더 이상 진행하지 않는 방식을 채택해 효율성을 높인다.미로에서 출구를 찾는 과정을 상상해보자.갈림길에서 길을 선택하다가 막다른 길에 도달하면 되돌아와 다른 길을 시도한다. ※ Backtrack은 '되돌아'라는 의미이다.동작방식1. 하나를 선택한다.2. 선택한 길이 유효한지 검사한다.3. 유효하다면 다음 결정 지점으로 이동한다.4. 유효하지 않다면, 이전 결정 지점으로 돌아가 다른 선택을 한다. 사용하는 경우 모든 경우의 수를 고려하면서도 불필요한 경로를 배제하기 때문에 문제를 효율적으로 해결할 수 있다.가능한 해결책의..

Oops, All Code!/🤯 Oops, My Algorithm! 2024. 7. 26. 18:39
( ु ´͈ ᵕ `͈ )ु JS:: 이 언어에서 sort를 힙(Heap)으로 대체해야할 때

힙(Heap)이란? 이진 트리 구조의 하나다.주로 우선순위 큐를 구현할 때 사용한다.  - 최대 힙(Max Heap): 부모 노드가 자식 노드보다 크거나 같은 값을 가진다.  - 최소 힙(Min Heap): 부모 노드가 자식 노드보다 작거나 같은 값을 가진다.JavaScript는 힙 자료구조를 내장하지 않기 때문에,효율적으로 문제를 해결하기 위해 힙을 직접 구현해야 한다.삽입과 삭제 연산에서 O(log n)의 시간 복잡도를 유지할 수 있기 때문에효율성 측면에서 매우 효과적이다. Array.prototype.sort를 힙(Heap)으로 대체해야하는 이유기본적으로 사용하는 알고리즘의 시간 복잡도가 최선의 경우 O(n log n),최악의 경우 O(n log n)의 시간 복잡도를 가진다.이는 힙을 사용한 해결법..

Oops, All Code!/🤯 Oops, My Algorithm! 2024. 7. 25. 22:20
( ु ´͈ ᵕ `͈ )ु JS:: 코딩테스트를 위한 완전탐색과 탐욕법

완전 탐색과 탐욕법은 몇 번 사용해보면 다른 매커니즘을 통해 돌아가지만,사실 코딩테스트 학습 초반에는 꽤나 헷갈렸던 알고리즘이다. 어떤 경우에 사용하는지 간단하게 정리해보겠다. 완전탐색(Brute Force)완전탐색은 왜 Brute Force(무자비한 힘)일까?이 방법이 무차별 공격처럼 가능한 모든 경우를 하나하나 시도하기 때문이다.이러한 무식한 방법 때문에 Brute(야수, 잔인한)라는 단어가 사용되었다.힘으로 밀어붙이는 상황처럼, 가능한 모든 경우를 다 시도해본다는 의미에서 파생되었다.직관적이고 단순하지만 비효율적일 수 있다. 이 알고리즘은, 미로 안에서 출구를 찾기 위해 모든 길을 가보는 것과도 같다.모든 경로를 시도하며 출구를 찾게되면, 반드시 출구를 찾겠지만 시간이 많이 걸릴 수 있다. 조합 문..

Oops, All Code!/🤯 Oops, My Algorithm! 2024. 7. 24. 23:04
( ु ´͈ ᵕ `͈ )ु JS:: 코딩테스트를 위한 배열 / 객체 / 집합(Set) 정리글

배열과 객체, 집합(Set) 자료구조는 각기 다른 시간 복잡도를 갖는다.따라서, 적절한 상황에 적절한 자료구조를 선택할 수 있어야한다. 배열:: 빈번한 접근이 필요한 경우Access(접근)O(1)Search(탐색)O(n)Insert/Delete(삽입/삭제)O(n) 따라서 데이터가 순서대로 정렬되어있고, 특정 인덱스로 자주 접근하는 경우에 사용함. - 순차적으로 데이터에 저장하고 접근 - 학생 성적 및 목록 등 // 배열 생성let arr = [1, 2, 3, 4, 5];// 접근 (Access)console.log(arr[2]); // 3// 탐색 (Search)console.log(arr.indexOf(3)); // 2// 삽입 (Insert)arr.splice(2, 0, 10); // 2번째 인덱스에..

Oops, All Code!/🤯 Oops, My Algorithm! 2024. 7. 22. 23:57
이전 1 2 다음
이전 다음
공지사항
  • Profile
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • javascript
  • 네이버부스트캠프
  • 카페추천
  • 도서추천
  • 대학생플리마켓
  • 트러블슈팅
  • 우아한테크코스
  • 경험플리마켓
  • 프론트엔드
  • 책추천
  • 서평
  • typescript
  • 비즈플리마켓
  • 안성스타필드
  • 어른의어휘공부
  • 일급객체
  • 프리코스
  • js
  • 도서리뷰
  • 어휘력
  • 카드뉴스
  • 소사벌맛집
  • 회고
  • 피어피드백
  • 프로토타입
  • 소사벌
  • 코딩테스트
  • react
  • 대학생팝업스토어
  • 타입좁히기
more
«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바