C++(25)
-
수병아... 니가 밉다... (미지의 공간 탈출 c++)
삼성 SW 역량테스트 2024 하반기 오전 1번 문제 복기입니다. 문제는 아래 링크에서 보실 수 있습니다. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 다시는 이런 문제를 틀리지 않기 위해 복기 하였습니다... 🙃빡센 구현 문제 입니다. 산 부분을 어떻게 처리하느냐가 핵심입니다. 더보기 #include #include #include #include using namespace std;#define FASTIO ios_base::sync_with_stdio(0), cin.tie(0)#define MAXN 20#define MAXM 20#define..
2024.11.18 -
10827 c++ - a^b
큰 수 string 계산 c++ 버전. cmath 함수인 pow를 사용하지 못하는 이유는 부동소수점 연산을 사용하여 근사값을 계산하기 때문입니다.부동소수점은 IEEE 754 표준을 따르며, C++의 double 타입은 약 15~17자리 십진수 정밀도를 제공합니다.테스트 케이스를 보면 소수점들이 들어가 있는데 이를 부동소수점으로 저장하면 이진수로 근사 처리되어 미세한 차이가 발생합니다.부동소수점 연산은 각 단계에서 오차를 누적시킵니다. 거듭제곱 연산은 반복 곱셈을 포함하므로, 결과에 포함된 오차가 더 커집니다.#include int main(void) { double s; double p; cin >> s >> p; cout.precision(20); cout 그래서 해당 문제에서는 고정 소수점..
2024.11.17 -
7453 c++ - 합이 0인 네 정수
이분탐색 문제입니다. 처음엔 해시로 접근했었습니다. 더보기해시 적용첫 풀이. -> 시간초과map을 사용해서 AB의 합을 먼저 구하고, 이후 CD의 합으로 unordered_map으로 접근 O(1) -> N^2 + N^2의 시간으로 풀 수 있을 거라 판단 최악의 경우 4000^2 + 4000^2으로 32,000,000번의 연산으로 충분히 풀 수 있을 거라 생각했습니다.시간초과의 이유 : 캐시히트의 시간까지 고려가 되어야함.더보기#include #include #include #define FASTIO ios::sync_with_stdio(0), cin.tie(0)using namespace std;int main() { FASTIO; int n; cin >> n; vector A(n), B(n), ..
2024.11.15 -
1655 c++ - 가운데를 말해요
우선순위 큐를 사용하는 문제.처음에는 우선순위 큐, vector의 정렬 중간값을 사용해서 풀이를 진행했는데, 시간초과가 났습니다.그래서 우선순위 큐 두개를 사용하여 최대힙, 최소힙을 사용하여 풀었습니다.더보기 더보기vector v; for (int i = 0; i > t; v.push_back(t); sort(v.begin(), v.end(), less()); cout 더보기#include #include #define FASTIO ios::sync_with_stdio(0), cin.tie(0)using namespace std;int n;int main() { FASTIO; cin >> n; priority_queue, greater> pq; queue q; for (int ..
2024.11.14 -
30469 c++ - 호반우가 학교에 지각한 이유 2
소수찾기 문제의 심화버전이다. 알고리즘 분류는 애드 혹이다.체를 사용하여 최적해를 구할 수 있도록 하였다. 더보기 c++ 코드#include #include #include using namespace std;bool prime[100];void savePrime() { memset(prime, true, sizeof(prime)); prime[0] = prime[1] = false; for (int i = 2; i = 10 && c & number) { number[0] = a / 10; number[1] = a % 10; for (int i = 2; i > a >> b >> n; if (!prime[a] || !prime[b]) { cout number(n, 0); if (fin..
2024.11.12