본문 바로가기

BOJ206

[BOJ]1285번: 동전 뒤집기 (c++) https://www.acmicpc.net/problem/1285 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위� www.acmicpc.net 그리디 + 브루트 포스 + 백트랙킹 #include #include #include using namespace std; int N; int flip(vector& coins, int row) { if (row == N) { // 각 열의 T개수를 더해 전체 T개수 구하고 반환 int total = 0; for (int i = 0; i < N; ++i) { int col_t_cnt = 0; .. 2020. 6. 25.
[BOJ]2138번: 전구와 스위치 (c++) https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는(1) 상태와 꺼져 있는 (0) 상태 중 하나의 상태를 가진다. i(1> from >> to; // 처음 위치에서 전구 뒤집는경우 / 안 뒤집는 경우의 횟수를 각각 계산하여, 더 작은값 얻기 int answer = min(get_flip_cnt(from, to, N, true), get_flip_cnt(from, to, N, false)); cout 2020. 6. 24.
[BOJ]1080번: 행렬 (c++) https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 그리디 #include #include using namespace std; void reverse(vector &v, int x, int y) { for (int i = x; i < x + 3; ++i) { for (int j = y; j < y + 3; ++j) { if (v[i][j] == '0') { v[i][j] = '1'; } else { v[i][j] = '0'; } } } } bool check(.. 2020. 6. 20.
[BOJ]11399번: ATM (c++) https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 그리디 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // 입력 int N; cin >> N; vector times(N); for (int i = 0; i > times[i]; } // 오름차순 정렬 sort(times.begin(), .. 2020. 6. 20.