전체 글
-
백준 25947번: 선물할인문제해결 2023. 10. 25. 17:27
선물할인 실버라서 쉬울줄 알았는데 너무 어려웠다. 최종적으로 a개를 할인받아 총 n개를 예산 b에 딱 맞게 샀다면, n개 중 할인받은 a개들이 가장 비싼 놈들이라는걸 생각을 못해냈다. 실버 문제들 많이 풀어봐야겠다... #include #define FOR(i, n) for(int i = 0; i < int(n); i++) #define FORL(e, s) for(auto &e : s) #define endl "\n" #define vi vector using namespace std; int N, budgets, coupons; struct Price { int p = 0; bool is_c = false; void set_c(bool b = true) { is_c = b; } int get_p() {..
-
백준 10830번: 행렬 제곱문제해결 2023. 10. 25. 17:27
행렬 제곱 천억제곱을 하는데 어떻게 숫자를 유지해야하는지 감이 안잡혔었는데, 어차피 찾는건 마지막 세자리 숫자니 계속 모듈러 1000 연산을 하면 되는 문제였다. 알고리즘 분류를 읽어보니 분할 정복을 써야 하는 문제인 듯 했지만 미리 곱해두고 나중에 찾아서 곱하는 방식으로 풀었는데 AC 되었다. 메모리 제한이 256MB라 도대체 메모리 초과가 날 이유가 없는데, 자꾸 메모리 초과가 떠서 디버깅하는데에 한참 걸렸다. 문제는 반복문에서 i를 long long으로 안해둬서 i가 음수가 되어,for(long long i = 1; i < B; i *= 2) { vvi.push_back(move(mult(vvi.back(), vvi.back()))); }이 부분에서 무한대로 push_back 하고 있었더라... i..
-
백준 9663번: N-Queen문제해결 2023. 10. 25. 17:26
N-Queen 삼성 코테가 끝났으니 구현 말고 다른 유형도 풀어보고자 솔브닥 Class 4부터 뽀개보기로 했다. 이름이 행렬 제곱인 문제가 있길래 이 문제부터 해볼까 하다가, 살짝 감이 안잡혀서 일단 목록중에 보이던 N-Queen부터 처리했다... 내일은 저거 해버려야지...근데 이게 시간이 1.8초밖에 안걸린다니 서버가 얼마나 좋은걸까? #include using namespace std; #define pii pair #define endl "\n" #define FOR(i, N) for (int i = 0; i < int(N); i++) #define FORL(e, S) for (auto& e : S) #define iib(r, c) (0 = N) { ans += 1; return; } int nr..
-
코드트리: 왕실의 기사 대결문제해결 2023. 10. 25. 17:25
왕실의 기사 대결 10월 15일 오전, 고사장에 가서 푼 문제이다. 기출 중 메이즈러너 이 문제가 가장 최신 기출이었는데, 이것 보다는 풀만해서 다행이었다. 그래도 코드트리가 메이즈러너랑 왕실의 기사 대결가 같은 골드3 티어라고 해주니 기분이 좋다. #include #include using namespace std; #define pii pair #define endl "\n" #define FOR(i, N) for (int i = 0; i h = h, this->w = w, this->k = k; } bool can_push(int dir, ..
-
코드트리: 싸움땅문제해결 2023. 10. 25. 17:24
싸움땅 memset(PMAP, -1, sizeof(int) * 20 * 20);이걸memset(PMAP, -1, 20 * 20);이렇게 써버려서 자꾸 오답처리됐다. 애먼 알고리즘만 자꾸 검토하다가 시간을 얼마나 날렸는지... #include using namespace std; #define pii pair #define endl "\n" #define FOR(i, N) for (int i = 0; i > M >> K; FOR(i, N) FOR(j, N) { int atk; cin >> atk; GMAP[i][j].push(atk); } memset(PMAP, -1, sizeof(int) * 20 * 20); FOR(i, M) { in..
-
코드트리: 코드트리 빵문제해결 2023. 10. 25. 17:23
코드트리 빵↑, ←, →, ↓ 의 "우선순위"로 움직이기가장 가까운 x가 여러 가지일 경우 행이 작은 x, 행이 같다면 열이 작은 x이 두개가 매번 헷갈렸는데 이 문제에서 두 개 동시에 써보니 이젠 구분이 된다. 전자는 저 순서대로 bfs 하란 뜻이고, 후자는 정렬을 하라는 뜻이다. 한번에 ac되었다. 아싸 #include using namespace std; #define FOR(i, n) for (int i = 0; i > M; FOR(i, N) FOR(j, N) cin >> MAP[i][j]; FOR(i, M) { int r, c; cin >> r >> c; r -= 1, c ..
-
백준 1005번: ACM Craft문제해결 2023. 10. 25. 17:21
ACM Craft 이런저런 시도를 하는데 자꾸 4%에서 틀리더라. 그러다 그냥 dfs(W)만 하면 된다는걸 이해해버려서 dfs로 풀었다. #include #define endl "\n" #define FOR(a, n) for(int a = 0; a < int(n); a++) using namespace std; int get_total_time(int idx, vector &prevs, vector& time, vector& total_time, vector& fixed) { if (fixed[idx]) return total_time[idx]; int MAX = 0; // 나한테 화살표 꽂고 있는 놈들 중에서 가장 오래걸리는 놈 찾기 FOR(i, prevs[idx].size()) MAX = max(MA..
-
백준 21610번: 마법사 상어와 비바라기문제해결 2023. 10. 25. 17:19
마법사 상어와 비바라기 #include #define pii pair #define endl "\n" using namespace std; int dr[8] = { +0, -1, -1, -1, +0, +1, +1, +1 }; int dc[8] = { -1, -1, +0, +1, +1, +1, +0, -1 }; int dr2[4] = { -1, -1, +1, +1 }; int dc2[4] = { -1, +1, -1, +1 }; int N, M; int MAP[50][50]; vector orders; vector clouds; #define iib(r, c) (0 N >> M; for (int i = 0; i > MAP[i][j]..