일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- CS
- join
- doitandroid
- 오블완
- 알고리즘
- Android
- 티스토리챌린지
- 코틀린
- 정보처리기사
- groupby
- 정처기
- 카카오코테
- 인프런
- SQL
- 프로그래머스
- 혼공파
- 안드로이드스튜디오
- 코테
- 혼공단
- 혼공챌린지
- 기술면접
- 스터디
- MySQL
- java
- Til
- 자바
- Kotlin
- select
- 자료구조
- Today
- Total
목록Algorithm (8)
Welcome! Everything is fine.
슬라이딩 윈도우(Sliding Window)란?슬라이딩 윈도우(Sliding Window) 알고리즘은 배열이나 리스트에서 연속된 부분 구간(윈도우)을 효율적으로 탐색할 때 사용되는 알고리즘이다. 다음과 같은 상황에 자주 활용된다.고정된 크기의 부분 배열을 찾는 문제연속된 부분 구간의 최대값/최소값을 찾는 문제특정 조건을 만족하는 부분 구간을 찾는 문제슬라이딩 윈도우를 사용하면 고정된 크기의 윈도우를 정해 그 크기 안에서 데이터를 참색하거나 누적 계산을 수한다. 매번 전체 배열을 탐색하는 대신 윈도우를 이동하며 필요한 계산만 업데이트 하므로 시간 복잡도 O(N)이다. 배열에서 고정된 크기의 부분합 중 최대값을 구하는 예제를 보자.public class SlidingWindowExample { publ..
해당 스터디는 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다.백트래킹이란?💡 백트래킹 : 가장 최근에 방문했던 노드로 다시 돌아가는 것(ex. DFS), 완전 탐색X 내가 찾는 답일 가능성이 있는 경우에만 탐색 외출을 했는데 집에 물건을 놓고 왔을 경우, 모든 아파트를 탐색해야 할까? 그런 사람은 없을 것이다.🤔 당연히 우리집에 물건을 놓고왔으니, 다른집에는 물건이 없다고 판단한다. 이 부분을 구현해야 하는 것이고, 이것을 유망함수라고 한다. 다른집에 있을 가능성이 없다(=유망하지 않다)는 것을 표현하는 것을 말한다. ✔️ 상태 정의 : 문제의 각 단계에서 가능한 상태를 정의하는 것✔️ 유망함수(isPromising) : 현재 상태가 유망한..
해당 스터디는 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다. 이번주 스터디 주제는 그래프이다. 그래프에 관해 간단하게 정리해둔 예전 포스팅도 있어서 같이 첨부해놓았다. 그래프 문제는 머리로는 이해해도 문제로 풀려고 하면 잘 풀리지 않는다. 문제를 많이 풀어봐야할 것 같다..🙄 [CS 발표_13] 그래프의 개념, 그래프 구현 방법그래프란?비선형 자료구조 중 하나로, 데이터를 포함하는 정점(vertex)과 정점을 잇는 간선(edge)으로 구성된 자료구조그래프의 종류무방향 그래프 : 간선에 방향성이 없는 그래프, 정점의 개수가 n3uomlkh.tistory.com그래프의 개념그래프 : 노드와 간선을 이용한 비선형 자료구조로 목적에 따라 선의 가중..
해당 스터디는 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다. 상호배타적 집합상호배타적 집합이란 교집합이 없는, 즉 공통원소를 가지지 않는 집합 관계를 의미한다. 예를 들어, 집합 A의 원소가 {1, 2, 3}이고 집합 B의 원소가 {4, 5, 6} 일 때 상호배타적 집합이라고 할 수 있다. 반면, 집합 A의 원소가 {1, 2, 3}이고 집합 B의 원소가 {2, 4, 6}이라면 상호배타적 집합이라고 할 수 없다. 교집합 {2}가 존재하기 때문이다. 상호배타적 집합을 표현할 때 고려해야할 점들은 다음과 같다. 집합 A = {1, 2, 3}, 집합 B = {4, 5, 6}일 때...특정 집합 원소들이 하나의 집합 원소라는 것을 알 수 있어야 한다...
해당 스터디는 코딩 테스트 합격자 되기 C++> 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다. 트리의 개념강의를 보며 직접 트리를 그려 간단한 개념을 정리해보았다. 트리 : 노드(Node)와 간선(Edge)으로 이루어진 계층적 자료구조, 그래프의 한 종류이며 순환을 허용하지 않는다.노드 : 트리의 각 구성 요소간선 : 노드와 노드를 연결하는 선루트 노드 : 트리에서 유일한 노드, 최상위 노드부모 노드 : 자식 노드를 직접 연결하고 있는 상위 노드자식 노드 : 특정 노드로부터 직접 연결된 하위 노드 형제 노드 : 같은 부모 노드를 가진 노드리프 노드 : 자식 노드가 없는 노드, 트리의 끝차수 : 특정 노드가 가진 자식 노드의 개수(위 그림에서 ..
해당 스터디는 코딩 테스트 합격자 되기 C++> 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다. 해시의 개념배열로 구현한 전화번호부 전화번호부를 만든다고 생각해보자. 이름과 그 이름에 맞는 연락처를 저장하려고 한다면 어떻게 구현할 수 있을까? 배열로 구현한 전화번호부에서 '홍길동'의 연락처를 찾으려면 다음과 같은 과정을 거친다.이름 테이블을 선형탐색하면서 '홍길동'을 찾는다.'홍길동' 위치에 해당되는 전화번호 테이블을 참조한다.'홍길동' 위치에 있는 전화번호는 '전화번호4'라는 것을 확인한다.위와 같은 방식으로 '홍길동'의 연락처를 찾을 수 있다. 그러나 문제점은 성능이 떨어진다는 점이다! 가장 최악의 경우 배열 끝까지 탐색을 해야하기 때문에 O..
해당 스터디는 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 C++ > 을 보고 정리한 내용입니다. 스택의 개념스택(Stack) : 가장 최근에 들어간 원소가 가장 먼저 나오는 자료구조, LIFO(Last In Fist Out) / FILO(First In Last Out) DFS, 백트래킹에서 사용한다. "가장 최근 원소"를 봐야하는 경우에 사용한다. (중요!) 스택은 "가장 최근" 이라는 것에 키워드를 잡아보자!가장 최근에 들어온 원소를 알 수 있다.가장 최근에 들어온 원소 순으로 나온다.스택의 ADT❔ADT란?ADT(Abstract Data Type)는 추상 데이터 타입의 약어이다.세부사항을 숨기고 사용자에게 필요한 기능만 명시한다.ADT를 사용하면 복잡한 자료구조의 내부 ..
해당 스터디는 코딩 테스트 합격자 되기 C++> 저자님과 함께하는 스터디입니다. 이번 주부터 아래 인프런 강의를 보며 매주 알고리즘의 기초를 다지는 스터디를 시작했다. 기본 개념을 다시 한번 복습하고 싶었는데 저자님께서 직접 운영하시는 스터디고, C++ 강의이지만 다른 언어도 가능하다고 하셔서 참여하게 되었다. 7주간 열심히 달리자!🔥 [지금 무료] 코딩 테스트 합격자 되기 - C++ 강의 | dremdeveloper - 인프런dremdeveloper | 코딩 테스트 합격을 위한 C++ 강의, 책 없이도 가능! 저자와 직접 소통 가능한 커뮤니티 제공!, [사진]여기에 문의 하세요https://open.kakao.com/o/gX0WnTCf📘 코딩 테스트 합격자 되기 - C++편www.inflearn.c..