분류 전체보기(99)
-
백준 14889 스타트와 링크 c++
해당 문제는 백트래킹 문제이다. N명의 사람이 있고 N/2, N/2로 사람을 나눈 후에 능력치를 계산해주면 된다. N/2, N/2로 팀을 백트래킹으로 나눠주었다. 그리고 cnt==N/2 가 되면 그 때 능력치를 계산해서 업데이트 해줬다. 정말 여러번 시간 초과가 났다. #include #include #include int N; int arr[21][21]; int ans = 987654321; int team[21]; using namespace std; void dfs(int cnt, int start) { if (cnt == N / 2) { int total1 = 0, total2 = 0; for (int i = 0;i < N;i++) { if (team[i] == 1) { for (int j = ..
2023.08.01 -
백준 13458 c++ 시험감독
13458 문제는 수학 문제이다. 간단한 문제인데 한번 틀렸다. 이 문제에서 놓칠 수 있는 부분은 두가지이다. 1. 어떤 부분의 자료형을 큰 것을 쓸 지 2. 사소한 알고리즘 실수 1번 같은경우에는 시험 감독의 수만 unsigned int로 선언하면 된다. 내가 실수했던 부분은 v[i]=v[i]-B해서 총 감독관이 감시할 수 있는 응시생만큼을 뺀 후 0보다 작을 경우에 부감독관을 할당하지 않아도 되는 부분을 뺐다. 고치고 나서 맞았다 #include #include #include using namespace std; int N, B, C; unsigned long long total; vector v; int main(void) { cin.tie(NULL); ios::sync_with_stdio(fal..
2023.08.01 -
백준 3190 뱀 c++
해당 문제는 구현문제이다. 몇가지 어려움이 있었다. 1. 테스트케이스 3번 테스트케이스 2번과 테스트케이스 3번이 다른 답을 내는 것은 뱀은 몸을 먼저 늘린 후에 방향 전환을 하기 때문이다. 13초에 뱀이 머리를 늘리면 꼬리와 닿게 되기 때문에 13초에 끝나게 된다. 2. 방향 전환 배열 선언 방향 전환하는 배열을 static하게 dir[101] 이런식으로 세웠었다. 하지만 시간이 101만큼 들어오지 않고 n*n 행렬이라고 할 때 여러번 순환을 한다고 하면 n*n*n .. 으로 계속 들어올 수 있고 이는 세그멘테이션 폴트를 야기할 수 있다. 따라서 map을 사용했다. vector을 사용할 수 있지만 time n 에 대해 방향 전환을 하는지 쉽게 찾기 위해서는 key와 value를 갖는 map이 나을 것 ..
2023.08.01 -
백준 15686 치킨배달 c++
//15686 #include #include #include #include #include using namespace std; int N, M; int arr[51][51]; int ans; vector v; vector house; void calclulate(vector &chicken){ int total = 0; for (int i = 0;i < house.size();i++) { int val = 987654321; for (int j = 0;j < chicken.size();j++) { val = min(val, abs(chicken[j].first - house[i].first) + abs(chicken[j].second - house[i].second)); } total += val;..
2023.07.27 -
백준 15683 c++
#include #include #include #include using namespace std; int N, M; int ans; int arr[9][9]; int dx[4] = { 1, 0, -1, 0 }; //90도 방향으로 수정 int dy[4] = { 0, 1, 0, -1 }; vector v; int count(void) { int cnt=0; for (int i = 0;i < N;i++) { for (int j = 0;j < M;j++) { if (arr[i][j] == 0) { cnt++; } } } return cnt; } void copy(int cpy0[9][9], int cpy[9][9]) { for (int i = 0;i < N;i++) { for (int j = 0;j < M..
2023.07.26 -
boj14891 톱니바퀴 c++
코드 #include #include #include #include #include using namespace std; void rotate(deque &v, int dir) { int f; if (dir == 1) { f = v.back(); v.pop_back(); v.push_front(f); } else if (dir == -1) { f = v.front(); v.pop_front(); v.push_back(f); } } int cal(vector v) { int total = 0; for (int i = 0;i < 4;i++) { if (v[i + 1][0] == 1) { total += pow(2, i); } } return total; } int main(void) { // cin.tie..
2023.07.25