목록공부/알고리즘 (31)
pizzaroot
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJ3H9J/btsJxDzSL05/VXnnuOdd6UwFFpdeyWAs10/img.jpg)
solved.ac 디스코드 📮홍보 채널에서 참가 신청을 받는 것을 봤지만, 까먹고 있었다가 ICPC 팀 카톡방에서 다른 팀원들이 참가할 것 같아서 나도 재빨리 신청을 했다. 예비소집을 갈까 말까 하다가 갔는데, 솔직히 밤을 새고 밥도 안먹은 상태라서 문제 풀기가 싫었다. 사실 디맥콘을 갈까 하다가 온거라서 디맥콘 라이브도 구경하면서 체스도 하면서 문제를 대충 풀었다. 그냥 제출하면 재미가 없기 때문에 이상한 코드를 제출했다! 이 코드를 제출하고 나서 좀 있다가 운영진들이 무언가를 보면서 웃는 장면을 발견했다. (내 코드를 보고 웃은건가? 하고 예측을 했지만 확실하지는 않았다.) 본대회 시작 전에 명찰에 Hidden Problem이 너무 뻔했지만 나중에 풀려고 나뒀다.대회 시작전 공지에는 타 참가자들에게..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sVRb1/btsIqAqCywx/QSCI1WxKVy0nymgEVxKxV1/img.png)
/** * author: pizzaroot * created: 2024-07-06 11:49:53**/#include #define inf 0x3f3f3f3f#define linf 0x3f3f3f3f3f3f3f3f#define all(x) (x).begin(), (x).end()#define rall(x) (x).rbegin(), (x).rend()#define pb push_backusing namespace std;typedef long long ll;typedef vector vi;typedef pair pi;int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; for (int tc = 1; tc > n ..
혼자서 진행했다. b [내일 내용 추가]
오랜만에 Div. 4를 쳐보기로 했다. A 문제 읽고 푸는 시간보다 로딩시간이 더 길었다. /** * author: pizzaroot * created: 2024-03-28 23:45:00 **/ #include #define inf 0x3f3f3f3f #define linf 0x3f3f3f3f3f3f3f3f #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define pb push_back using namespace std; typedef long long ll; typedef vector vi; typedef pair pi; int main() { ios::sync_with_stdio(0); cin.tie..
\(\displaystyle i\)번째 공장에서 제공한 캔디 개수를 \(\displaystyle a_{i}\)라고 하자. 관찰 1: 추가해야하는 캔디 개수의 최솟값을 \(\displaystyle x\)라고 하면, \(\displaystyle x+\sum\limits _{i=1}^{n} a_{i}\)는 \(\displaystyle k\)의 배수가 되어야 한다. 관찰 2: \(\displaystyle a_{1} \geq a_{2} \geq a_{3} \geq \ \cdots \ \geq a_{n}\)이 되도록 재배치 해도 구하려는 값 \(\displaystyle x\)의 값은 변하지 않는다. 관찰 3: \(\displaystyle a_{k+1} ,\ a_{k+2} ,\cdots ,\ a_{n}\) 중에서 서..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bo4QUE/btsy4qXUc7b/FPze8pnKWkLEkrw3thx3fk/img.png)
26등이라는 성과를 냈다. 여러가지 생각이 들었다. 문제가 쉬웠나? 만약 문제가 쉬웠다면 다른 팀들도 많이 풀었을 것이다. 잘하는 팀들이 많이 빠졌나? 잘 모르겠다 실력이 늘었나? 는것은 맞지만 이렇게 까지 등수가 오른것은 이상하다. 운이 좋았나? 푼 문제중에서 어렵게 느껴진 문제는 없었다. 누군가가 설계한 몰래카메라에 당한 것인가? 그럴지도 모른다. 어쨌든 CDGK를 매우 빠르게 내가 풀어서 다른 문제에 할당할 시간이 많았던 것 같다. I를 풀었고 J는 아쉽게 못풀었다. 흠.. J가 세제곱에 돈다는 소문이 있는데 벡터로 짜서 그런지 TLE가 났다.
정렬이란 무엇인가? 정렬은 집합 속 모든 원소들을 순서대로 나열하는 것이다. 정렬은 꼭 수를 정렬할 때만 쓰이는 것은 아니다. 영어 단어들은 알파벳 사전순으로 정렬할 수 있고 한국어 단어들은 가나다순으로 정렬할 수 있다. 정렬 알고리즘은 여러가지가 있다. 프로그래밍을 처음 입문하면서 배우는 버블 정렬, 선택 정렬, 삽입 정렬과 퀵 정렬, 합병 정렬, 힙 정렬 등 매우 많이 존재한다. 하지만 오늘은 이런 정렬 알고리즘에 대해 소개하지는 않을 것이다. 간단하게 언급만 하자면 정렬할 원소의 개수가 \(n\)일 때, 버블/선택/삽입 정렬은 \(O(n^2)\)의 시간복잡도를, 합병/힙 정렬은 \(O(n\log n)\)의 시간복잡도를 가진다. 퀵 정렬은 좀 더 생각해봐야 될 점이 있기 떄문에 여기서는 언급하지 않으..