Programming 79

[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

[CF] Round #572 (Div. 2) _ 210521

https://codeforces.com/contest/1189 Dashboard - Codeforces Round #572 (Div. 2) - Codeforces codeforces.com ㅎㅎ 학코금버 (학회 코포스터디 금요일 버추얼) A. 0과 1의 개수가 다르면 그대로 출력해주면 되고, 같으면 맨 앞 하나를 자른 문자열을 출력하면 된다. 맨 앞 한 글자와 나머지로 string을 분리하면 각각에서의 0과 1의 개수가 다를테니까! int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; string s; cin >> s; vector count(2); for (int i = 0; i < s.length(); i++)..

Programming 2021.05.22

[C++] 동일 클래스 내 다른 생성자 호출에 관하여

class Dot { public: int x, y; Dot() {} Dot(int x_, int y_) { x = x_; y = y_; } Dot operator = (Dot t) { x = t.x; y = t.y; return { x, y }; } }; class LineSegment { public: Dot d1, d2; LineSegment(Dot dot1, Dot dot2) { d1 = dot1; d2 = dot2; } LineSegment(int x1, int y1, int x2, int y2) { LineSegment(Dot(x1, y1), Dot(x2, y2)); } }; 이렇게 작성하고 LineSegment(int x1, int y1, int x2, int y2) 생성자 호출 시 Dot ..

Programming 2021.05.14

[BOJ] 16967 배열 복원하기

https://www.acmicpc.net/problem/16967 16967번: 배열 복원하기 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐 www.acmicpc.net 21.05.14 기준 문제 난이도 실버3 난이도는 실버3인게 맞는데 학회 슬랙에 올라온 질문 덕분에 고민을 많이 했다.. 애초에 그 질문 덕분에 문제를 풀게 된 것이긴 하지만 우선 내 풀이는 배열 b를 이용해 배열 a의 내용을 최대한 구하고, 값이 구해지지 않은 부분은 또 구해주는 방법인데 int main() { ios::sync_with_stdio(0); ..

Programming 2021.05.14

[Algorithms] Min Heap, Max Heap

학교 과제 하면서 짰다 C++ 클래스, 상속 사용하면서 짜니까 재밌다 처음에 min heap의 pop 메소드를 짤 때 왼쪽 자식부터 확인하면서 자식에 부모보다 큰 값이 저장되어 있으면 값을 바꾸고 바로 다음 level로 넘어갔는데 그렇게 하니까 틀렸다. 만약 3 -> {2, 1}이 저장되어 있을 때 왼쪽 자식이랑만 값을 비교하면 2 -> {3, 1} 상태가 된다. (a -> {b, c}는 부모노드, 왼쪽 자식, 오른족 자식에 저장된 값이 각각 a, b, c라는 의미이다) 이는 부모 노드의 값은 자식 노드의 값보다 작거나 같아야 한다는 원칙을 위반한다. 위와 같은 상황에서 두 자식 노드에 대해 모두 비교하면 되지 않을까? 라는 생각을 했지만 만약 그렇게 한다면 3 -> {2, 1} 상태에서 2 -> {3,..

Programming 2021.05.13

[CF] Round #720 (Div. 2) _ 210508

codeforces.com/contest/1521 Dashboard - Codeforces Round #720 (Div. 2) - Codeforces codeforces.com 오... 학회 내 코드포스 스터디에서 매주 금요일 23:35에 버추얼 라운드를 도는데, 본 라운드가 있는 날에는 그 라운드를 다같이 친다. 백만년만의 코포라 당연히 떨어질 줄 알았는데 올랐다... 블루를 가기 바로 직전인 이 레이팅에서 가장 고통스럽다는 걸 잘 알고 있지만. minigimbob 계정이 블루를 달성하고 나서는 쭉 minigb 계정으로 참여했는데, 부계정이기도 하고 크게 동기부여 될만 한 게 없어서 별로 진지하진 않았다. 근데 요즘 코드포스를 다시 열심히 하고 싶어져서 꾸준히 잘 해볼 생각이다. ㅎㅎ 지금 내 실력은 ..

Programming 2021.05.08

[BOJ] 14659 한조서열정리하고옴ㅋㅋ

(2021년 3월 4일에 작성한 글입니다.) 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000) 둘째 줄에 N개 봉우리의 높이가 왼쪽 봉우리부터 순서대로 주어진다. (1 ≤ 높이 ≤ 100,000) 각각 봉우리의 높이는 중복 없이 www.acmicpc.net 처음에는 O(n^2) 풀이밖에 안 떠올랐는데 어떻게 하는거지? 하다가 신촌 연합 캠프 초급 스터디 멘토 할 때 효규가 강의자료 만든 거 보고 그리디구나! 했다 ​ 근데 처음에 제출할 때 틀렸는데, 그 이유는 맨 마지막 결과에 대한 업데이트를 해줘야 하기 때문이다 ​ 예를 들어 5 5 4 3 2 1 이런 인풋이 들어오면 처음에 제출한 코드에서는 답이 0이 될 것이다 ​ 이를 해결하는..

Programming 2021.04.26

[BOJ] 20927 Degree Bounded Minimum Spanning Tree

(2021년 2월 24일에 작성한 글입니다) 20927번: Degree Bounded Minimum Spanning Tree 제약에 맞는 Spanning Tree가 존재한다면 첫 번째 줄에 YES를 출력하여라. 이후 해당 Spanning Tree 의 간선을 $N-1$개의 줄에 걸쳐 출력한다. 간선을 출력하는 순서는 상관없으며, 각 간선을 출력할 때는 www.acmicpc.net N, M 크기가 작아서 Brute Force인가? 생각했지만 일단 원래 MST 방법대로 구함 WA ​ 그래서 Brute Force로 짰다 근데 시간초과 났어 그래서 일단 미뤄두고 있다가 효규가 맞왜틀이라고 해서 코드 봤는데 비트마스킹으로 했더라 우왕 ​ 효규가 모든 노드가 하나 이상의 간선과 연결되어 있고 전체 간선 개수가 N-1..

Programming 2021.04.26