일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Algorithm
- 에라토스테네스의 체
- dfs
- 시뮬레이션
- 그리디
- 해커랭크
- 삼성 SDS 대학생 알고리즘 특강
- koitp
- 구현
- BFS
- 맛집
- SWEA
- hackerrank
- 브루트포스
- 삼성 기출
- DP
- 잠실
- 스택
- BOJ
- 동적 계획법
- 다이나믹 프로그래밍
- sw expert academy
- 알고리즘
- 소수
- C++
- 백준
- 완전탐색
- PS
- 백트래킹
- dynamic programming
- Today
- Total
목록백준 (64)
펭로그
문제링크 : https://www.acmicpc.net/problem/1966 2개의 배열을 선언하여 각각 동일하게 입력받은 후 한 배열은 우선순위 순서대로 정렬하여 순서대로 카운트한다.정렬된 배열은 우선 순위가 가장 큰 숫자가 맨 뒤로 가게되므로 배열을 탐색하는 도중에 해당 숫자가 발견되면 ptr을 줄여가면서 옮겨주는 방식이다.그리고 모든 배열을 다 탐색하였을 경우 다시 원점으로 돌아가야 하기 때문에 % num 모듈러 연산을 하였다. 1234567891011121314151617181920212223242526272829303132333435363738// BOJ 1966 프린터 큐#include using namespace std; int main() { freopen("../input.txt", "..
문제링크 : https://www.acmicpc.net/problem/9012 1. 열린 괄호의 갯수 == 닫힌 괄호의 갯수 가 성립해야한다.2. ( 가 나올때마다 카운트를 증가시키고 ) 이 나올때마다 카운트를 감소시켜 최종 카운트가 0이 되어야 한다.3. 닫힌 괄호가 먼저 나오면 안된다. ())(() 라던지 ))()(( 의 상황이 나오면 안된다는 뜻 (20~21번째 줄 조건시 break) 심화문제로 BOJ 10799번 쇠막대기 문제가 있다. 123456789101112131415161718192021222324252627// BOJ 9012 괄호#include using namespace std; int main() { // freopen("../input.txt", "r", stdin); int T;..
문제링크 : https://www.acmicpc.net/problem/10799 ( 은 쇠막대기의 시작점이고 ) 은 쇠막대기의 끝나는 부분이고 ( ) 은 레이저를 나타낸다.두 괄호 사이(쇠막대기)에는 반드시 ( ) 이 올 수밖에 없다. 1. 열린 괄호의 갯수는 닫힌 괄호의 갯수와 동일해야 한다.2. 열린 괄호가 증가하다가 감소하는 시점 ( ) 은 반드시 레이저이다.3. 레이저 ( )를 제외하고 레이저의 좌측 부분에 열린 괄호가 몇개인지를 세면 레이저를 기준으로 좌측의 잘린 쇠막대기의 판이 몇개인지 알 수 있다. 열린 괄호를 읽을 때 마다 카운트를 세면 될 것이다.4. 레이저 ( ) 우측 편부터 닫힌 괄호 ) 가 오면 쇠막대기 카운트를 하나씩 감소시킨다. 여기서 찾을 수 있는 규칙은 ( 의 경우 반드시 다..
문제링크 : https://www.acmicpc.net/problem/2839 1. 설탕은 3kg과 5kg 두가지 밖에 존재하지 않는다.2. 두 무게로 나누어 떨어지지 않으면 무조건 무시된다.3. 최적의 값을 구하려면 5kg이 최대한 많아야 한다.4. 3kg씩 빼가면서 5의 배수가 최초로 나오는 시점이 가장 최적의 답이 될 수 있다. 1234567891011121314151617181920212223242526// BOJ 2839 설탕배달#include using namespace std; int main() {// freopen("../input.txt", "r", stdin); int n; cin >> n; int a = 0; int ans = -1; while(n >= 0){ if(n % 5 == ..