Programming 77

[BOJ] 5419 북서풍

https://www.acmicpc.net/problem/5419 5419번: 북서풍 각 테스트 케이스에 대해서, 북서풍을 타고 항해할 수 있는 섬의 쌍의 수를 출력한다. www.acmicpc.net 스위핑 공부하면서 풀었다. 아주 오래전에 세그먼트 트리 공부하면서 풀었는데 오랜만에 다시 푸니까 재밌었다. struct Point { int x, y; }; bool sortby(Point a, Point b) { if (a.x == b.x) { return a.y b.x; } class SegmentTree { public: SegmentTree() {} SegmentTree(int n) { for (base = 1; base < n; base *= 2); tree...

Programming 2022.03.23

[BOJ] 2261 가장 가까운 두 점

https://www.acmicpc.net/problem/2261 2261번: 가장 가까운 두 점 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 www.acmicpc.net 오... 신기하다 스위핑 공부 중 풀이 보고 공부했다. 포인트는 1. x 좌표 기준으로 스위핑, 그러므로 y 좌표에 대한 건 범위와 관계없이 모두 다 저장해둬야 한다. 지금은 범위에 포함되지 않아도 나중에는 포함될 수 있기 때문에. 2. set은 y 좌표 기준으로 오름차순 정렬되어 있으므로, set에 있는 점의 x 좌표가 범위 안에 있는 점인지를 확인하는 게 필요하..

Programming 2022.03.23

[CF] Round #777 (Div. 2) _ 220311

https://codeforces.com/contest/1647 Dashboard - Codeforces Round #777 (Div. 2) - Codeforces codeforces.com 멸망. 결국 그린까지 떨어지는구나. 잭팟 라운드였는데 터진 건 나였고. A. 212121... 이런 식으로 2로 시작해서 최대한 길게 출력하는 게 좋으므로 "21"을 얼마나 출력할 수 있는지에 초점을 두면 된다. 그래서 n을 3으로 나눈 나머지가 0이면 n/3회만큼 "21"을 출력하고, 나머지가 2이면 n/3회만큼 "21"을 출력하고 마지막에 2를 추가로 출력해준다. 그런데 나머지가 1인 경우에는 2121...21을 출력한 후에 다시 1이 나올 수 없으므로 이때는 1212...1이 답이 된다. int main() {..

Programming 2022.03.12

[CF] Round #612 (Div. 2) _ 220211

https://codeforces.com/contest/1287 Dashboard - Codeforces Round #612 (Div. 2) - Codeforces codeforces.com 아 ㅋㅋ 한 달 전의 내가 글 조금만 더 다듬고 올리려고 임시저장 해놨는데 그 후로 방치했다가 이제야 발견했다. 지금이라도 올려서 다행. A. A들 간의 간격 중 가장 큰 걸 구하면 된다. 근데 ('A'들 간의 인덱스 차 - 1)를 구해야 하는데 그냥 차이로 계산했다가 두 번 틀렸다. ㅠㅠ int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc; cin >> tc; while (tc--) { int n; cin >> n; string s; cin ..

Programming 2022.03.09

[CF] Round #776 (Div. 3) _ 220308

https://codeforces.com/contest/1650 Dashboard - Codeforces Round #776 (Div. 3) - Codeforces codeforces.com 윽 Div. 3을 만만하게 본 나의 잘못. 아직 hack이 안 끝났다. A. 해당 문자 c가 문자열에서 홀수 번째에 등장하는 경우가 있는지 확인하면 된다. int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc; cin >> tc; while (tc--) { string s; cin >> s; char c; cin >> c; bool ans = false; for (int i = 0; i < s.length(); ++i) { if (s[i] == ..

Programming 2022.03.09

[CF] Round #769 (Div. 2) _ 220130

https://codeforces.com/contest/1632 Dashboard - Codeforces Round #769 (Div. 2) - Codeforces codeforces.com 하아 조졌네 그치만 오히려 좋아 정신 차리자 A. 개인적으로 palindrome을 좋아한다. 좋아해서 신나게 풀었다. bool palin(const string& s, int start, int end) { if (start > end) { return true; } else { if (s[start] != s[end]) { return false; } return palin(s, start + 1, end - 1); } } int main() { ios::sync_with_stdio(0); cin.tie(0); c..

Programming 2022.01.31

[CF] Round #768 (Div. 2) _ 220127

https://codeforces.com/contest/1631 Dashboard - Codeforces Round #768 (Div. 2) - Codeforces codeforces.com 오랜만의 라이브 코포 벌써 3일이 지나 글을 써야 하는 날이 됐다. 다른 내용을 쓰려고 했는데 상황이 마땅치 않아서 오늘 코포를 치고 후기 글을 적기로 했다. 학회 코포 스터디 단톡방에서 했던 이야기인데 INFP 특) 사소한 걱정이 많다. 그래도 걱정을 한 김에 적어보자면, 많은 분들이 계시는 곳인데 몇몇 사람들만 아는 이야기를 해서 죄송했다. 애초에 이런 사담에 관심이 없으셔서 괜찮으셨을 수도 있지만, 그래도 누군가 이걸 보고 무슨 이야기를 하는 걸까 라는 생각을 조금이라도 한 분이 있으시다면 죄송합니다. A. 라..

Programming 2022.01.28

[CF] Round #606 Div. 2_220107

https://codeforces.com/contest/1277 Dashboard - Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) - Codeforces codeforces.com 학회 코포 스터디에서 금요일마다 도는 버추얼로 참여했다. 오늘 제출한 코드는 전반적으로 조금 덜 깔끔하다. 진짜 PS용 코드다...ㅎ 무지성 구현 ! 그치만 오늘은 뭔가 이걸 다듬고 싶지 않기도 하고 이런 식으로 현장감 있는 코드도 기록으로 남겨두고 싶어서 제출했던 코드를 그대로 올리려고 한다. A. 1부터 9까지 11...1, 22...2 이런 식의 수를 만들어서 개수를 그냥 다 세면 된다. int main() { ios::sync_w..

Programming 2022.01.10

[CF] Round #754 (Div. 2) _ 211112

https://codeforces.com/contest/1605 Dashboard - Codeforces Round #754 (Div. 2) - Codeforces codeforces.com 정말 오랜만에 라이브 코포를 했다. 사실 코포 자체가 정말 오랜만이었다. A. d(a1, a2, a3) = |a1 + a3 - 2 * a2| 에서 1을 증가시키거나 감소시키는 두 수가 a1, a3가 되면 d값이 변하지 않는다. 따라서 a1과 a3 중 하나와 a2를 골라야 하는데, 이때 결과적으로 | | 안의 값은 3 증가하거나 감소한다. 만약 a1을 1 증가시키고 a2를 1 감소시키면 +3 되고, 반대로 하면 -3 되니까. 그러므로 d(a1, a2, a3) = |a1 + a3 - 2 * a2| = |a1 + a2 +..

Programming 2021.12.23

[Algorithm] Minimum Spanning Tree(MST)

학교 과제로 MST를 STL 없이 짜야 했다. 그래서 이전에 짜놨던 min_heap을 사용해서 짰다. 그때 다형성을 사용하고, 메소드 이름을 STL이랑 동일하게 짜 놓은 덕분에 이번 과제는 금방 했다. C++는 정말 재밌다. 다른 언어들도 배워야지. #include #include #include #include #include #define kEndl '\n' typedef long long ll; typedef unsigned long long ull; using namespace std; template class Heap { public: Heap() { end = 1; tree.resize(1); } virtual void push(T value) = 0; virtual void pop() = ..

Programming 2021.06.22