알고리즘(9)
-
백준 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 -
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 -
백준 2841 C++
간단한 stack문제이다. 줄마다 stack을 형성한 후 stack의 top원소와 눌러야 하는 프렛의 번호 크기를 비교하며 프렛의 번호 크기가 더 클때까지 stack pop연산을 수행해주면 된다. 그러나 항상 stack이 아니라 queue가 더 편할지 모른다는 두려움에 deque을 쓰는 습관이 있어서, 이 문제 역시 deque을 써서 풀었다. 코드는 다음과 같다.
2020.03.30