백준
-
코드잼 2020 라운드 1B 후기백준 2020. 4. 20. 09:17
코드잼 예선을 통과하고, 라운드 1을 응시하게 되었습니다. 라운드 1은 A, B, C 로 나뉘어 진행됩니다. 세 라운드 중 어느 것이라도 1500등 안에 들어가면 통과입니다. 한 서브 라운드라도 합격하면 이후 라운드는 응시할 수 없습니다. 따라서 1A 보다 1B가, 1B보다는 1C가 등수 이내에 들기 쉽습니다. 아무래도 잘하는 사람은 먼저 라운드에 응시해서 바로 다음 라운드 티켓을 거머쥘 수 있기 때문이겠죠. 1A는 저번주 일요일 아침에 시행되었습니다. 1번 문제에서 헤맨 나머지 그렇게 많이 문제를 풀지 못했고.. 1번 스몰 인풋, 2번 미들 인풋까지 풀어 19점, 5772등으로 마감했습니다. 1B는 어제 새벽에 시행되었습니다. 이번 라운드도 어렵긴 마찬가지였는데... 특히 1번 문제가 쥐약이었습니다. ..
-
백준 3015번 분할 정복식 풀이백준 2020. 2. 4. 23:03
https://www.acmicpc.net/problem/3015 3015번: 오아시스 재결합 문제 오아시스의 재결합 공연에 N명이 한 줄로 서서 기다리고 있다. 이 역사적인 순간을 맞이하기 위해 줄에서서 기다리고 있던 백준이는 갑자기 자기가 볼 수 있는 사람의 수가 궁금해 졌다. 두 사람 A와 B가 서로 볼 수 있으려면, 두 사람 사이에 A 또는 B보다 키가 큰 사람이 없어야 한다. 줄에 서있는 사람의 키가 주어졌을 때, 서로 볼 수 있는 쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 줄에서 기다리고 있는 사람의 수 N이 주어진다. ( www.acmicpc.net 본질적으로 히스토그램 문제 (https://www.acmicpc.net/blog/view/12) 와 동일한 알고리즘이다. 스택 O..
-
백준 1604번 python 3 풀이백준 2020. 1. 24. 20:29
from fractions import Fraction import sys class Line: def __init__(self, param): self.ax = int(param[0]) self.ay = int(param[1]) self.bx = int(param[2]) self.by = int(param[3]) # ax + by = c self.a = self.by - self.ay self.b = self.ax - self.bx self.c = self.a * self.ax + self.b * self.ay # def debug(self): # print([self.a, self.b, self.c]) def crossPoint(self, otherLine): de = self.a * otherLin..
-
백준 1797번 C++ 풀이백준 2020. 1. 19. 17:00
https://www.acmicpc.net/problem/1797 1797번: 균형잡힌 줄서기 문제 소시갤 회장 항승이는 클럽에 회원들을 모아놓고 함께 소녀시대 춤을 추고 난 뒤 팬들에게 소녀시대 춤에서 마지막 부분에 나오는 멤버들이 한 줄로 모이는 부분을 안무 해주고 있었다. 안무를 하던 중 항승이는 한 줄로 선 상태에서 이들 중 연속된 사람들을 그룹 지었을 때, 이 그룹에 속한 남녀의 수가 같은 그룹이 가장 보기 좋다는 것을 알았다. 그래서 항승이는 팬들이 한 줄로 섰을 때 위의 조건을 만족하는 그룹 중 가장 길이가 긴 그룹을 찾고자 한다. 가 www.acmicpc.net 입력 때문에 공간복잡도 O(n), 시간복잡도 O(nlogn) 이내에 승부를 봐야 하는 문제입니다. 1. 남= 1, 여 = -1 로..
-
백준 13460번 C++ 코드백준 2020. 1. 15. 00:53
#include #include #include #include #include #include #include #include #include using namespace std; using pii = pair; using tiiii = tuple; int n, m; bool isVisited[10][10][10][10]; int dp[4][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; char buffer[10][10]; bool hasRoute = false; int answer = INT_MAX; queue q; struct Element { int redX; int redY; int blueX; int blueY; }; bool isInside(int x, int y)..
-
백준 17370번 풀이백준 2019. 12. 3. 00:28
육각형 형태를 좌표평면에 대응시킵니다. 입력 제한이 22이므로... 아무리 멀리 나가더라도 상하좌우로 50을 벗어날 수 없겠죠. 버퍼를 50*50으로 받고... DFS로 백트래킹해서 답을 구해냅니다. 시간복잡도는 O(2^n) #include #include #include #include #include #include #include #include using namespace std; struct Point { int x; int y; int previousX; int previousY; bool type; vector nextPoints() { vector candidate; if (type) { int delta[3][2] = { {-1, 0}, {1, 1}, {1, -1} }; for (auto..
-
백준 16681번 풀이백준 2019. 12. 1. 21:05
#include #include #include #include #include #include #include #include #define MAX 987654321 using namespace std; class ClimbManager { public: ClimbManager(long long n, long long d, long long e) { this->n = n; this->d = d; this->e = e; this->heights = new long long[n]; this->buffer = new vector[n]; this->mountainBuffer = new vector[n]; this->univercityBuffer = new vector[n]; } void setHeight(lo..
-
PS(알고리즘) 오픈 톡방 신입부원 대 모집!!백준 2019. 12. 1. 00:24
하루에 한 문제씩 PS 문제를 즐겁게 푸는 모임을 가져보고자 오픈채팅방을 만들었어요!! 그렇게 어렵지는 않은 백준 문제 하나 혹은 (예시 : https://www.acmicpc.net/problem/14619) 난이도가 쉬우나 알고리즘 지식이 탄탄해야 하는 릿코드 문제 둘 (예시: https://leetcode.com/problems/cells-with-odd-values-in-a-matrix/) 정도를 매일 선정할 거에요. 자신의 실력과 취향에 맞추어서 하루에 한 문제 혹은 두 문제씩 풀고, 코드를 서로 올려보면서 PS를 즐겨보아요 ★★ 규칙은 아래 노션에 올려놓았어요 !! https://www.notion.so/PS-da8977089c2344dba9bdbc3d0188d286 익명 톡방이고 하루이틀 문..