일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BeautifulSoup
- lis
- 그리디
- 조합
- MST
- 이분 탐색
- 백트래킹
- 재귀
- 완전 탐색
- 분할 정복
- 중복 순열
- 순열
- 우선순위 큐
- Knapsack
- 메모리풀
- dfs
- BFS
- 큐
- 피보나치 수
- 문자열
- 크루스칼
- 비트마스크
- 클래스
- 세그먼트 트리
- 시뮬레이션
- DP
- 링크드리스트
- 스택
- SSAFY
- 빠른 입출력
- Today
- Total
목록백준 (128)
작심 24/7
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 � www.acmicpc.net 이차원 배열을 돌면서 값이 1인 곳이 있으면 그걸 시작으로 BFS 해준다. 해당 위치의 상하좌우의 값이 1이면 큐에 그 위치를 넣어놓고 큐가 empty할 때까지 반복해준다. #include #include using namespace std; int cnt = 0; void Bfs(int field[][51], int i, int j, int M, int N) { queue q; q.push(pair(i, j)); field[i][j]..
1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net N개의 정수 중에 순서 상관없이 1~N만큼 뽑아 더하는 조합 문제이다. 조합 함수를 만들어서 중간 중간에 원소의 합을 더해주며 그 합과 S를 비교하며 카운트 해주면 된다. #include #include using namespace std; int arr[21] = { 0 }; int cnt = 0, sum = 0, res = 0; vector v; void combination(int N, int S) { if (cnt ==..
2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트�� www.acmicpc.net 123부터 987까지의 i를 N과 비교하면서 스트라이크와 볼의 개수를 세어준 뒤 입력된 스트라이크와 볼의 개수와 비교해주고 같으면 배열[i]에 1을, 다르면 -1을 저장한다. N과 i를 비교할 때 주의할 점은 세 자리가 각각 다른 숫자로 구성되어 있어야 하고, 0이 포함되면 안 된다. 이 부분만 주의해주면 된다. 이 코드가 무식해 보인다면 삼중 for문이나 순열로 좀 있어 보이게 짤 수 있다. #include using namespace ..
10448번: 유레카 이론 문제 삼각수 Tn(n ≥ 1)는 [그림]에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다. [그림] 자연수 n에 대해 n ≥ 1의 삼각수Tn는 명백한 공식이 있다. Tn = 1 + 2 + www.acmicpc.net K가 3가지의 삼각수로 표현될 수 있는지 구하려면 삼각수를 먼저 구해준 후 3중 for문으로 세 삼각수의 합이 K가 되는 경우 1, 안 되는 경우 0을 출력하면 된다. 자연수 K의 범위가 1000까지이므로 삼각수 Tn은 T44(990)까지만 구해주고 T1에서 T44까지 세 번 돌리며 비교하면 끝 불필요한 반복을 줄이기 위해 중간 중간 break를 걸어준다. #include #include using namespace std; int..
2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 9명 중에 순서 상관없고 중복 없이 7명을 찾아내는 것이므로 조합이다. 조합 함수를 만들어서 재귀로 풀어주면 된다. 결과 벡터에 있는 값 < 현재 배열에 있는 값인 경우에만 push와 카운트, sum에 더해주고 재귀호출 해주며 카운트가 7이 될 때까지 반복한다. 카운트가 7이고 sum이 100이면 출려해주고 끝내고 아닐 경우엔 돌아와서 pop, 카운트와 sum에서도 빼준 뒤 다음 배열의 값으로 넘어간다. #include #include #include using name..
1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 수열의 i번째의 위치에 있을 때 num[i]에 max(i번째의 값, i-1번째까지의 최댓값 + i번째의 값) 을 넣어주면 i번째까지의 최댓값이 저장된다. 여기서 i번째까지의 최댓값이 무조건 답이 아니기 때문에 Max를 만들어 계속 최댓값을 비교하여 찾아주고 출력하면 된다. #include #include using namespace std; int main() { int N, num[100001] = { 0 }, Max; cin >> N >> num[0]; Max = nu..
1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 www.acmicpc.net 5397번 키로거 문제와 같다. 커서를 기준으로 스택을 두 개 만든 뒤 L -> res가 비어있지 않으면 res의 top을 temp에 push D -> temp가 비어있지 않으면 temp의 top을 res에 push B -> res가 비어있지 않으면 pop P 문자 -> res에 문자 push 명령어에 따라 이렇게 구현해주면 된다. #include #include #include #include using namespace std; int main() { st..
5076번: Web Pages Input will consist of a number of lines of HTML code, each line containing from 0 to 255 characters. The last line will contain a single # character – do not process this line. Within the text of each line will be zero or more tags. No angle bracket will www.acmicpc.net 문제의 조건들을 나열해보면 1. 열린 태그와 닫힌 태그의 쌍이 맞아야 한다. (X) (O) 2. 한 태그 안에서 열고 닫을 수 있다. 3. 열린 태그 안에 문법이 들어갈 수 있다. 4. 올바르지 못..