문제 링크: https://www.acmicpc.net/problem/24267 24267번: 알고리즘 수업 - 알고리즘의 수행 시간 6 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 www.acmicpc.net 문제 풀이 MenOfPassion 알고리즘을 보면 총 반복문이 3번이니 두번째 줄은 대충 3인거 같고 수식을 알아보자. $$\sum_{k=1}^{n-2}(\sum_{x=1}^{k}x)$$ 이 식으로 나오게 된다. 1부터 n까지의 합은 이차식으로 나타낼 수 있고, 1부터 $n^{2}$까지의 합 또한 삼차식으로 나타낼 수 있기 때문에 최종식은 $\fr..
문제 링크: https://www.acmicpc.net/problem/24268 24268번: 2022는 무엇이 특별할까? 백준 온라인 저지의 신년대회 Hello, BOJ 2022!의 개최일은 2022년 1월 15일이다. 준겸이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2022가 무언가 특별하다는 사실을 깨달았다. 그렇 www.acmicpc.net 문제 풀이 숫자가 하나씩만 나와야하므로 d진법으로 나오는 숫자중에서 d자리인 수만 구하면 된다. d는 최대 9이므로 9! 정도면 충분히 돌릴 수 있다. 예를 들어 4진법이라면 0, 1, 2, 3이 하나만 들어가야하므로 4자리 숫자만 구하면 된다. 이때, 0이 첫번째로 가는 경우만 제외시키면 나머지는 반복문을 이용해서 풀면 된다. 코드
문제 링크: https://www.acmicpc.net/problem/23253 23253번: 자료구조는 정말 최고야 위 그림처럼 책이 쌓여 있으므로, 첫 번째 더미 - 두 번째 더미 - 첫 번째 더미 - 두 번째 더미 순으로 꺼내면 책 번호순으로 나열할 수 있다. www.acmicpc.net 문제 풀이 스택으로 차례대로 빼면서 안되는 경우를 생각했지만 스택을 굳이 이용할 필요가 없다. 더미는 중복되지 않으며 책이 1권씩 있기 때문에 그냥 한 개의 더미라도 내림차순이 아니라면 올바르게 나열할 수 없다. 코드
문제 링크: https://www.acmicpc.net/problem/15728 15728번: 에리 - 카드 첫째 줄에 N, K(0 ≤ K < N ≤ 100)가 주어지고 둘째 줄에는 N개의 ‘공유 숫자카드’에 적혀 있는 정수, 셋째 줄에는 N개의 ‘팀 숫자카드’에 적혀 있는 정수가 주어진다. 이 수는 -10,000보다 크거나 www.acmicpc.net 문제 풀이 처음에는 우선순위 큐로 풀려했다가 N과 K의 범위가 작아서 브루트 포스로 풀었다. 전부 확인해서 곱이 가장 큰 팀 카드들을 뽑았다. set()을 이용해서 원소를 뽑는데 remove를 이용했다. O(1)로 없앨 수 있기 때문에 시간단축에 도움이 된다. 코드
문제 링크: https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 문제 풀이 위상 정렬에 다이나믹 프로그래밍을 이용하는 문제이다. 사실상 웰노운 문제인 1005번의 아이디어를 가져왔다. 상관 관계가 있는 작업의 시간을 가져와 max()로 최댓값을 갱신해줘야 한다. 어떤 작업을 수행하기 위해 반드시 먼저 완료되어야 하기 때문이다. dp 테이블을 만들어서 가장 시간이 오래 걸린 것을 출력하면 된다. 이 역시도 max()를 이용하면 된다. 물론 ..
문제 링크: https://www.acmicpc.net/problem/22993 22993번: 서든어택 3 좋은 전투 순서가 존재해서 준원이만 생존하고 나머지 플레이어가 모두 죽게 만들 수 있다면 Yes를, 반대로 전투가 어떤 순서로 이루어져도 준원이가 절대 최후의 생존자가 될 수 없다면 No를 www.acmicpc.net 문제 풀이 그리디 문제이다. 두 사람이 동시에 싸우지 못하니 그냥 준원이가 차례차례 한사람씩 싸운다 생각하자. 우리는 준원이를 최후의 생존자로 만들어야 하니 최적의 조건으로 맞춰줘야 하기 때문이다. 최후의 생존자로 만들기 위해서는 좋은 순서를 만들어줘야 하는데 약한 적부터 강한 적으로 오름차순 정렬을 해주면 된다. 약한 적이랑 만나면서 공격력을 올려주면 되는 것이다. 하지만 최후의 생..
문제 링크: https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 문제 풀이 그리디 문제이다. 1번 과정을 보면 연속된 임의의 문제들을 선택할 수 있다. 따라서 일단 파란색 혹은 빨간색으로 모든 문제를 칠한다. 최솟값을 구해야하므로 파란색으로 모든 문제를 칠하고 빨간색으로 칠할 때와 빨간색으로 모든 문제를 칠하고 파란색으로 칠할 때 중에 최소가 되는 것을 택하면 된다. 예제 입력 1을 보면 BBRBRBBR은 1번 과정에 따라서 이렇게 선택할 수 있..
- Total
- Today
- Yesterday
- 그리디
- set
- 수학
- greedy
- Implementation
- 백트래킹
- 집합과 맵
- 볼록 껍질
- Brute Force
- convex hull
- Simulation
- TEXT
- DP
- 정렬
- 시뮬레이션
- Topological Sorting
- 파이썬
- 구현
- MST
- backtracking
- 너비 우선 탐색
- Sorting
- Python
- 최소 신장 트리
- 다이나믹 프로그래밍
- 위상 정렬
- BOJ
- math
- 브루트포스
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |