백준 1343 - 그리디
백준 1417 - 그리디
백준 1439 - 그리디
백준 1789 - 그리디
백준 1817 - 그리디
백준 1969 - 그리디
백준 2828 - 그리디
백준 3135 - 그리디
백준 9237 - 그리디
백준 11256 - 그리디
백준 14916 - 그리디
백준 15904 - 그리디
백준 16435 - 그리디
백준 19939 - 그리디
그리디 알고리즘
그리디 알고리즘
그리디 알고리즘
그리디 알고리즘
그리디 알고리즘생각문제풀 때 지문 완전히 이해하고 풀어나가자!
그리디 알고리즘 문제해결내림차순 정렬 후 판단하면 끝.소스코드
그리디 알고리즘 문제해결 가장 기본적인 문제 중 하나. 이런 류의 코드 체화
그리디 알고리즘 문제해결 뒤에서부터 확인했다면 굉잔히 쉽게 해결.그리디는 정렬과 함께
그리디 알고리즘 문제해결 30의 배수를 찾기 전 3의 배수부터 생각.그리고 그 뒤에 0 하나 더 붙이면 그게 30의 배수니까 3의 배수를 먼저 생각했으면 됐음
그리디 알고리즘
그리디 알고리즘
그리디 알고리즘
백준 2110 Gold 4 - 이진탐색
투 포인터 알고리즘
🎈 투 포인터 알고리즘🎃 코멘트값의 유효한 범위 찾아야할 때 이진 탐색 또는 투 포인터.
그리디 알고리즘
주사위 - 그리디
소트 - 그리디
그리디
자료구조 스택 활용
그리디 - 양수 음수 따로 생각할 수 있었어야 함.
DFS - 연결 군집 확인
전형적인 dp 유형
DFS로 연결된 것들 확인하기
DFS - 탐색 과정
DFS - 연결요소
DFS - 연결요소 개수
DFS - 0,1로 표현이 아닌 다른 방식. 이런 방식이 방문 체크리스트가 필요함.
DFS - 상하좌우 탐색.
DFS - 전형적인 연결요소 문제
DFS, BFS
BFS - 최단거리
BFS - 최단거리 + 탐색하면서 BFS하는게 아닌 먼저 큐에 다 담아넣는 유형
BFS + 조합. 문제풀 때 유형 파악할 수 있을정도로!
BFS - 최단거리 + 3차원 리스트 (dz추가하는 방향벡터 !)
BFS - 최단거리
BFS - 연결요소 문제
BFS - 인접노드
BFS - 최단거리 + 조건 추가. (활용 어떻게 해야할지 생각 잘해야함)
BFS - 단순 연결요소 개수 구하기
다익스트라 알고리즘
BFS - 최단거리 (인접 리스트)
BFS - 최단거리 + @. 이런 식의 특정 알고리즘 + 다른 알고리즘 섞어서 내면 많이 어렵다.
BFS - 연결요소 개수, 가장 많은 것 찾기
DFS + DP
그리디, dp
dp - 점화식
dp 피보나치
dp - 기본
dp - 기본 유형
dp - 전형적인 문제
dp - 기본
dp - 가장 긴 증가하는 부분수열(최장증가부분수열)
dp - 기본
dp - 점화식 이해.
dp - 간단한 규칙
dp - 경우의 수 따지면서 점화식 작성
dp - 기본
dp - 기본
dp - 조합을 dp를 통해 값 구현
dp - 냅색 알고리즘
다익스트라
다익스트라 기본
문자열 문제.
쉬운 구현문제
부분 수열 합. 부분 집합 느낌이 난다면 DFS를 고려하자
구현 기본
구현
구현
구현, 완탐
구현 기초
특정 문자 딕셔너리로 개수 구하는 것이 편해
dp
유니온 파인드 - 어렵
간단 구현
구현
구현
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 첫째 줄에 1,000
삼성 - 빡구현
삼성 - 빡구현
삼성 - 빡구현
삼성 - 빡구현
삼성 - 빡구현 (DFS 백트랙킹)
삼성 - 백트랙킹(순열)
삼성 - 구현(조합)
모의 A형, 백트랙킹을 통해 전부 확인해야한다는 생각을 가지고 문제 접근을 했어야 함.
순열
조합합
중복 순열
DFS 기본 상태트리 생각
dp
구현
실버 구현
브루트 포스 - 다시 풀어볼만함.
4개의 기호 ‘(’, ‘)’, ‘’, ‘’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다.한 쌍의 괄호로만 이루어진 ‘()’와 ‘\[]’는 올바른 괄호열이다.만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘X’도 모두 올바른 괄호열이 된다.X와
간단 구현
다익스트라
강변에 빌딩들이 옆으로 빽빽하게 밀집한 지역이 있다.이곳에서는 빌딩들이 너무 좌우로 밀집하여, 강에 대한 조망은 모든 세대에서 좋지만 왼쪽 또는 오른쪽 창문을 열었을 때 바로 앞에 옆 건물이 보이는 경우가 허다하였다.그래서 이 지역에서는 왼쪽과 오른쪽으로 창문을 열었을
퀴즈 대회에 참가해서 우승을 하게 되면 보너스 상금을 획득할 수 있는 기회를 부여받는다.우승자는 주어진 숫자판들 중에 두 개를 선택에서 정해진 횟수만큼 서로의 자리를 위치를 교환할 수 있다.예를 들어, 다음 그림과 3, 2, 8, 8, 8 의 5개의 숫자판들이 주어지고
한 쪽 벽면에 다음과 같이 노란색 상자들이 쌓여 있다.높은 곳의 상자를 낮은 곳에 옮기는 방식으로 최고점과 최저점의 간격을 줄이는 작업을 평탄화라고 한다.평탄화를 모두 수행하고 나면, 가장 높은 곳과 가장 낮은 곳의 차이가 최대 1 이내가 된다.평탄화 작업을 위해서 상
N X N크기의 농장이 있다.이 농장에는 이상한 규칙이 있다.규칙은 다음과 같다. ① 농장은 크기는 항상 홀수이다. (1 X 1, 3 X 3 … 49 X 49) ② 수확은 항상 농장의 크기에 딱 맞는 정사각형 마름모 형태로만 가능하다.1 X 1크기의 농장에서 자
원재가 컴퓨터를 만지다가 실수를 저지르고 말았다. 메모리가 초기화된 것이다.다행히 원래 메모리가 무슨 값이었는지 알고 있었던 원재는 바로 원래 값으로 되돌리려고 했으나 메모리 값을 바꿀 때 또 문제가 생겼다.메모리 bit중 하나를 골라 0인지 1인지 결정하면 해당 값이
평소 햄버거를 좋아하던 민기는 최근 부쩍 늘어난 살 때문에 걱정이 많다.그렇다고 햄버거를 포기할 수 없었던 민기는 햄버거의 맛은 최대한 유지하면서 정해진 칼로리를 넘지 않는 햄버거를 주문하여 먹으려고 한다.민기가 주로 이용하는 햄버거 가게에서는 고객이 원하는 조합으로
"기러기", "토마토", "스위스"와 같이 똑바로 읽어도 거꾸로 읽어도 똑같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.8x8 평면 글자판에서 제시된 길이를 가진 회문의 개수를 구하라.위와 같은 글자판이 주어졌을 때, 길이가 5인 회문은 붉은색 테두리
다음 100X100의 2차원 배열이 주어질 때, 각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값을 구하는 프로그램을 작성하여라.다음과 같은 5X5 배열에서 최댓값은 29이다.제약 사항총 10개의 테스트 케이스가 주어진다.배열의 크기는 100X100으로 동일하다.
A1, A2, ... , AN의 N개의 자연수가 주어졌을 때, 최소 1개 이상의 수를 선택하여 그 합이 K가 되는 경우의 수를 구하는 프로그램을 작성하시오.입력첫 번째 줄에 테스트 케이스의 수 T가 주어진다.각 테스트 케이스의 첫 번째 줄에는 2개의 자연수 N(1 ≤
테이블 위에 자성체들이 놓여 있다.자성체들은 성질에 따라 색이 부여되는데, 푸른 자성체의 경우 N극에 이끌리는 성질을 가지고 있고, 붉은 자성체의 경우 S극에 이끌리는 성질이 있다.아래와 같은 테이블에서 일정 간격을 두고 강한 자기장을 걸었을 때, 시간이 흐른 뒤에 자
다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다.8개의 숫자를 입력 받는다.첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다. 다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4,
N개의 정점과 M개의 간선으로 구성된 가중치가 없는 무방향 그래프에서의 최장 경로의 길이를 계산하자.정점의 번호는 1번부터 N번까지 순서대로 부여되어 있다.경로에는 같은 정점의 번호가 2번 이상 등장할 수 없으며, 경로 상의 인접한 점들 사이에는 반드시 두 정점을 연결
문제 : 회문2 "기러기" 또는 "level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다. 주어진 100x100 평면 글자판에서 가로, 세로를 모두 보아 가장 긴 회문의 길이를 구하는 문제이다. 위와 같
진기는 붕어빵 가게를 운영하고 있다.진기가 파는 붕어빵은 그냥 붕어빵이 아니라 겉은 바삭! 속은 말랑! 한입 물면 팥 앙금이 주르륵 흘러 입안에서 춤을 추며,절로 어릴 적 호호 불며 먹었던 뜨거운 붕어빵의 추억이 떠올라 눈물이 나오게 되는 최고급 붕어빵이다.진기는 이런
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 순열의 크기 N (2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 순열이 주어지며, 각 정수는 공백으로 구분되어 있다.각 테스트 케이스마다, 입력으로 주어진 순열에 존재하는 순열 사이클
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로
dfs 풀만한 문제
dfs
bfs
체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까?입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다.각 테스트 케이스는
N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오.첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000)
투 포인터 - 특정한 합을 가지는 부분 연속 수열 찾기
에라토스테네스의 체 + 투 포인터
10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오.첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S
N개의 정수로 이루어진 수열 A1, A2, …, AN이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오.예를 들어 수열이 {1, 2, 3, 4, 5}라고 하자. 만약 M = 3일 경
회전 초밥 음식점에는 회전하는 벨트 위에 여러 가지 종류의 초밥이 접시에 담겨 놓여 있고, 손님은 이 중에서 자기가 좋아하는 초밥을 골라서 먹는다. 초밥의 종류를 번호로 표현할 때, 다음 그림은 회전 초밥 음식점의 벨트 상태의 예를 보여주고 있다. 벨트 위에는 같은 종
백트랙킹
순열
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.순열 코드.중복 체크만 하고 전부 반복.
SWEA 모의 A형
삼성 기출 구현
삼성 빡구현
삼성 빡구현
삼성 테트로미노 - 코드트리 테트리스 블럭 안의 합 최대화 하기 빡구현
BFS스러우면서 다익스트라스러운 문제
냅색 알고리즘. 기준 2개 주어질 때... 어떻게 풀어야 할지 고민해보자.
스도쿠 : 있는 그대로 구현
삼성 구현.
구현, 다익스트라
연결만 확인하면 됐던 문제
MST(크루스칼), Flood-Fill 등등
다익스트라로 풀되, 상태를 기록해야 하는 문제 -> 3차원 배열로 상태 기록하면서 문제 풀었어야 했다.
다익스트라, 미리 장애물을 따로 특정 배열에 저장해놓고 조건을 해결하는 문제
SWEA 모의 A형. 있는 그대로의 완탐(DFS)
SWEA 모의 A형 , 전형적인 DFS(부분집합) 문제
SWEA a형, BFS 빡구현
모의 A형
모의 A형
모의 A형 빡구현
모의 A형. 빡구현
모의 A형. 빡구현
다익스트라. 벽 부수는 횟수가 추가적인 조건
다익스트라인데 상태를 기록하면서 풀어야 하는 문제
그리디 대표 유형. 기준 2개
-연산자 기준으로 분리한다는 아이디어. 그리디적으로 생각할 수 있었음
각 알파벳에 가치를 계산해서 값을 부여하면 됐었다. 이 과정에서 다음에 비슷한 유형이 나와도 가치계산을 통해 값을 부여할 수 있겠다.
가장 큰 값을 우선적으로 뽑아내기 -> 그리디 + 우선순위 큐를 통해 문제 해결
그리디 + 우선순위 큐. 후보군을 우선순위 큐에 쌓아가는 느낌을 기억하자.
모의 A형 대비 문제, BFS를 통해 사이클 별로 퍼져 나가야함.
다익스트라. 근데 시작점이 한점이 아니라 여러점인 경우의 문제
그리디적인 생각으로 접근
그리디적으로 문제 풀었어야 함.
그리디 + 우선순위 큐
그리디 + 우선순위 큐
그래프 완탐 -> BFS
완탐 -> BFS
모의 A형, 빡구현
모의 A형 빡구현
모의 A형 빡구현.
모의A형 빡구현
다익스트라
핀볼게임 다시 풀어봄, 있는 그대로의 구현.
모의 A형
모의 A형.
모의 A형
모의 A형
모의 A형.
모의 A형
모의 A형
모의 A형
모의 A형
삼성 기출
그리디 + 우선순위 큐. 모의 A형. 굉장히 어려웠음
그리디 + 우선순위 큐
라인 스위핑. 하지만 그리디 + 우선순위큐라고 생각해도 됨
차분 배열. 효율적인 누적합
그리디 + 우선순위 큐
완탐. 이전 방향 바탕으로 조건 생각하는 문제
생각의 전환. 치즈가 아닌 공기를 기준으로 생각
스택 활용 문제
DFS. 방문체크
DFS + DP 로 문제 해결
알고리즘 없이 있는 그대로 문제 해결하는 ... 생각의 힘을 기를 수 있는 문제