목록분류 전체보기 (271)
빙응의 공부 블로그

📝개요 슬라이딩 윈도우 알고리즘에 대해 알아보자 📝슬라이딩 윈도우의 핵심 이론 일단 배열에서 K개씩 더하는 것 중에서 큰걸 찾는 문제가 있다고 생각해보자..57-414-325 기본적으로 생각 안하고 풀 수 있는 것은 O(N*K)인 브루트포스를 생각할 것이다.for(int i = 0; i 해당 아이디어는 아래와 같은 중복된 연산을 해야하기에 효율성이 떨어진다. 슬라이딩 윈도우의 핵심아이디어는윈도우를 지정해서 이동하면서 계산하는 것이다. 위 사진처럼 윈도우의 범위 K를 더하고 이동할 때마다 윈도우 범위에서 벗어난 수를 빼주면 된다. 📝 추천 문제 12847번: 꿀 아르바이트문제윤호는 퍼주기로 유명한 편의점 사장이다. 그의 편의점에는 특이한 임금 체계를 가지고 있다.각 날마다 일의 차이때문에 일마..

📝 기본 아이디어 기본적인 불량 사용자 매핑으로는 풀 수 없는 문제이다. 그 이유는 불량 사용자 중에 동일한 목록이 나올 수 있기에 중복 계산이 되어 크게 나올 수도 있기 때문이다. 또한 제한사항이 그렇게 크지 않아 DFS도 가능하다.불량 리스트 별로 가능한 user_id 들을 저장HashSet을 이용해서 중복되는 루트를 거름결과 또한 HashSet으로 저장하여 쉽게 결과 도출 import java.util.*;class Solution { Set> result = new HashSet(); public int solution(String[] user_id, String[] banned_id) { List> possibleBans = new ArrayList(); ..

📝 기본 아이디어제한 사항sticker는 원형으로 연결된 스티커의 각 칸에 적힌 숫자가 순서대로 들어있는 배열로, 길이(N)는 1 이상 100,000 이하입니다.sticker의 각 원소는 스티커의 각 칸에 적힌 숫자이며, 각 칸에 적힌 숫자는 1 이상 100 이하의 자연수입니다.원형의 스티커 모양을 위해 sticker 배열의 첫 번째 원소와 마지막 원소가 서로 연결되어있다고 간주합니다.제한 사항을 보면 배열이 10만 이하로 완전 탐색이나, DFS, BFS는 좋지 않습니다.그렇기에 DP로 풀겠다고 마음먹었습니다. 기본 아이디어DP로 시작 시 0번 스티커를 때면 마지막 스티커를 사용할 수 없다는 것을 처리해줘야 합니다.또한 이 로직이 진행되기 전에 길이가 1이면 먼저 리턴을 해줘야 자연스럽게 오류 없이 풀..

📝풀이해당 문제는 기본 아이디어를 세우는 게 중요하다. 자연수 S를 자연수 집합 N개로 나눠야한다. 집합 N개로 나눈 경우의 수 중에 곱이 가장 큰 것을 구하라이 두개를 잘 보면 쉽게 구할 수 있다. 그건 바로 집합 N개로 나눌 때 곱이 가장 큰 것은 집합이 가장 균등해야 가능하다. 즉 n = 3 s = 10이면 균등 값은 [3, 3, 4]여야 한다. 가장 쉽게 식을 세우면 s / n만으로 모든 집합 값을 결정할 수 있다.class Solution { public int[] solution(int n, int s) { int[] answer = new int[n]; // n보다 s가 작으면 집합으로 못나눔 if(n > s) return ne..

📝 2장 MySQL 시스템 변수의 특징 MySQL 서버는 기동하면서 설정 파일의 내용을 읽어 메모리와 작동 방식을 초기화하고, 접속된 사용자를 제어하기 위해 값을 별도로 저장한다. 이러한 값을 시스템 변수라고 한다. CMD에서 SHOW VARIABLES && SHOW GLOBAL VARIABLES로 확인 가능하다.SHOW VARIABLES && SHOW GLOBAL VARIABLES 📌 적용 범위 측면의 시스템 변수시스템 변수 값이 어떻게 MySQL 서버와 클라이언트에 영향을 미치는지 판단하려면 각 변수가 무엇인지 알아야 한다.시스템 변수는 적용 범위에 따라 글로벌과 세션으로 나뉘며 일반적으로 세션별로 적용되는 시스템 변수의 경우 글로벌 변수 뿐만아니라 세션 변수에도 동시에 존재한다.글로벌 변수하나의..

📝1장 왜 MySQL을 사용하는가? "어떤 DBMS를 사용해야 할지 모르겠습니다. 어떤 DBMS가 좋은가요??" 책에 따르면, 10년 전에는 DBMS 선택지가 많지 않아 오라클과 MySQL이 주요 선택지였습니다. 당시 오라클은 MySQL보다 성능이 뛰어났지만, 가격이 너무 비쌌습니다. 시간이 지나 데이터의 양이 수백 배, 수천 배로 늘어나면서, 오라클의 비용을 감당하기 어려운 상황이 생겼고, 결과적으로 MySQL이 유일한 대안으로 자리 잡게 되었습니다. 현재는 어떨까요? 시대가 발전하면서 RDBMS만이 아닌 다양한 종류의 DBMS가 등장했습니다. NoSQL을 시작으로 객체 관계형인 PostgreSQL까지요 이 상황에서 DBMS는 어떻게 고르는게 좋을까요?그것은 다음 순서로 고려하는게 좋은 것 같습니..