
문제 링크: https://www.acmicpc.net/problem/4658 4658번: 삼각형 게임 삼각형 게임은 시작할때 여섯개의삼각형을 부여받는데, 각 변에는 숫자가 쓰여있다(그림 참고). 이 삼각형들을 돌리고 움직여서 육각형을 만들어야 하는데, 반드시같은 숫자가 쓰여있는 변끼리 www.acmicpc.net 문제 풀이 브루트포스 알고리즘 브루트포스로 대충 돌려서 풀었다. 테케가 몇 개인지 모르지만 한번 할때 $6!*3^{6}$ 정도니 시간 안에 들거 같다. 일단 삼각형을 입력받고 왼쪽 숫자는 0, 오른쪽 숫자는 1, 밑변 숫자는 2로 인덱스를 정하자. 다음 그림과 같다. 이런 삼각형이 주어졌을 때, 순서가 정해져있지 않기 때문에 순열을 이용해주고, i번의 삼각형의 1번 인덱스와 i+1번의 삼각형의..
문제 링크: https://www.acmicpc.net/problem/20412 20412번: 추첨상 사수 대작전! (Hard) 한 줄에 걸쳐 준표가 좋아하는 소수 m, 참가자들이 정한 Seed, 시연으로 공개된 X1, X2 이 주어진다. 항상 가능한 상황만 입력으로 주어진다. www.acmicpc.net 문제 풀이 페르마의 소정리 페르마의 소정리를 이용하여 풀었다. $(a \times Seed+c) \equiv X1 \;(mod \; m)$와 $(a \times X1+c) \equiv X2 \;(mod \; m)$를 빼서 한개의 연립합동방정식을 만든다. $a(Seed-X1) \equiv X1 - X2 \;(mod \; m)$가 되는데 m은 소수이고 0
문제 링크: 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()를 이용하면 된다. 물론 ..
- Total
- Today
- Yesterday
- Topological Sorting
- set
- BFS
- math
- 그리디
- BOJ
- 볼록 껍질
- Sorting
- Python
- 최소 신장 트리
- 다이나믹 프로그래밍
- 수학
- 시뮬레이션
- 파이썬
- backtracking
- MST
- 정렬
- 너비 우선 탐색
- 위상 정렬
- 구현
- Implementation
- Brute Force
- convex hull
- Simulation
- 백트래킹
- DP
- 브루트포스
- 집합과 맵
- TEXT
- greedy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |