본문 바로가기

C++106

[백준][구현] 15662 톱니바퀴 c++ 구현 목차https://www.acmicpc.net/problem/15662문제 문제 접근8자리에 0, 1로 이루어져서 비트마스킹으로 할려다가 그게 더 복잡한 것 같아서 그냥 배열로 풀었다.맞닿는 인덱스가 2와 6이라는 것을 통해 따로 저장해 두고 그걸 바탕으로 쉬프트 해주면 간단하게 풀 수 있다.    코드 구현#include #include #include#include#include using namespace std;//N = 0 S = 1 // 1 = 시계 -1=반시계// 오 2 -> 6 왼 6->2 //다르면 반대 회전 같으면 회전 x//1 1 0 1 0 1 1 1-> 1 0 1 0 1 1 1 1int T, K;string str;vector v[1002];vector> rotation;void.. 2024. 9. 21.
[백준][그리디] 1911 흙길 보수하기 c++구현 목차https://www.acmicpc.net/problem/1911문제 문제 아이디어좌표가 매우 크므로 좌표만큼 배열을 만드는 것은 무리다.따라서 계산해주어 O(N) 순회해야 한다. 웅덩이의 시작 포인트에서 널판지를 설치하면 최적해를 만족한다.   코드 구현#include #include #include#include#include #includeusing namespace std;typedef long long ll;ll N, L, a, b;int total = 0;vector> v;//반올림을 통해 항상 널판지로 채울 수 있게 하였다.ll gapMin(ll len, ll str) { double a = len; double b = L; ll gap = ceil(a / b); //.. 2024. 9. 20.
[백준][백트래킹][브루트포스] 15683 감시 c++구현 목차 https://www.acmicpc.net/problem/15683문제 문제 구현 방향 CCTV의 최대 개수는 8개를 넘지 않는다. 이 부분이 핵심 포인트였다... 문제를 제대로 읽지 않고 완전 탐색 불가능한거 아니야? 하면서 그리디로 돌아갔다가 한참 헤맸다 ㅜ 문제는 꼼꼼히 읽어야 된다.  문제 아이디어그냥 백트래킹 잘 해주면 풀린다. 아이디어는 복구를 하기 위한 좌표를 저장해 놓고 저장해 놓은 좌표를 바탕으로 복구하면 된다.  코드 구현#include #include #include#include#include using namespace std;//cctv 구조체typedef struct CCTV { int num; int x; int y;}CCTV;//상 하 좌 우int dx.. 2024. 9. 19.
[백준][누적합][구현] 27942 danceplant c++ 구현 목차https://www.acmicpc.net/problem/27942문제 문제 구현 방향누적합을 통해 하지 않으면 시간초과가 나는 문제이다. 탐색은 bfs와 유사하게 했지만 가장 큰 곳을 먼저 탐색하게끔 좌표를 따로 저장해 주었다.  코드 구현#include #include #include#include#include using namespace std;typedef struct Plant{ vector> v; int sum;}Plant;int N;int board[3001][3001] = { 0 };int searching[3001][3001] = { 0 };vector> v;//상하좌우int dx[4] = {0,0,-1, 1};int dy[4] = {-1, 1,0,0};Plant dire.. 2024. 9. 19.
728x90