일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조
- 정처기
- select
- 알고리즘
- SQL
- 인프런
- 스터디
- 코틀린
- 혼공단
- 안드로이드스튜디오
- 기술면접
- 자바
- CS
- Kotlin
- Android
- 코테
- 혼공파
- 카카오코테
- join
- 정보처리기사
- Til
- 프로그래머스
- MySQL
- 혼공챌린지
- 오블완
- doitandroid
- 티스토리챌린지
- groupby
- 안드로이드
- java
- Today
- Total
목록알고리즘 (8)
Welcome! Everything is fine.
슬라이딩 윈도우(Sliding Window)란?슬라이딩 윈도우(Sliding Window) 알고리즘은 배열이나 리스트에서 연속된 부분 구간(윈도우)을 효율적으로 탐색할 때 사용되는 알고리즘이다. 다음과 같은 상황에 자주 활용된다.고정된 크기의 부분 배열을 찾는 문제연속된 부분 구간의 최대값/최소값을 찾는 문제특정 조건을 만족하는 부분 구간을 찾는 문제슬라이딩 윈도우를 사용하면 고정된 크기의 윈도우를 정해 그 크기 안에서 데이터를 참색하거나 누적 계산을 수한다. 매번 전체 배열을 탐색하는 대신 윈도우를 이동하며 필요한 계산만 업데이트 하므로 시간 복잡도 O(N)이다. 배열에서 고정된 크기의 부분합 중 최대값을 구하는 예제를 보자.public class SlidingWindowExample { publ..
해당 스터디는 저자님과 함께하는 스터디입니다.인프런 강의 코딩 테스트 합격자 되기 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++ > 을 보고 정리한 내용입니다. 해시의 개념배열로 구현한 전화번호부 전화번호부를 만든다고 생각해보자. 이름과 그 이름에 맞는 연락처를 저장하려고 한다면 어떻게 구현할 수 있을까? 배열로 구현한 전화번호부에서 '홍길동'의 연락처를 찾으려면 다음과 같은 과정을 거친다.이름 테이블을 선형탐색하면서 '홍길동'을 찾는다.'홍길동' 위치에 해당되는 전화번호 테이블을 참조한다.'홍길동' 위치에 있는 전화번호는 '전화번호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..
📌 문제 📌 코드 import java.util.*; class Solution { public int solution(String[][] clothes) { // clothes 크기 만큼의 map 생성 HashMap map = new HashMap(clothes.length); // clothes[i][0] : 의상 이름, clothes[i][1] : 의상 종류 for (String[] cloth : clothes) { if (map.containsKey(cloth[1])) { // map에 해당 의상 종류가 있으면 실행 map.put(cloth[1], map.get(cloth[1]) + 1); // 그 전 value에 +1 continue; } map.put(cloth[1], 1); // map에 해..
📌 문제 📌 코드 import java.util.*; class Solution { public String solution(int[] numbers) { StringBuilder answer = new StringBuilder(); String[] strArr = new String[numbers.length]; for (int i = 0; i < numbers.length; i++) { strArr[i] = String.valueOf(numbers[i]); // numbers의 요소를 String으로 바꿔 새 배열에 추가 } Arrays.sort(strArr, new Comparator() { // 정렬 기준을 정의한 객체인 Comparator를 이용해 정렬 public int compare(Stri..