끄적끄적 코딩
article thumbnail
[C++] 백준 13458번 시험 감독
알고리즘 2019. 9. 19. 10:44

여러 방에 있는 사람들을 몇명의 감독관으로 감시할 수 있는지 찾는 문제입니다. 방에 사람 - 총감독관 < 1 이면 count를 1증가해줍니다. 그렇지 않으면 ((방에 사람 - 총감독관 - 1) / 감독관) + 2 만큼 count를 증가해줍니다. #include #include #include using namespace std; typedef long long ll; vector v; int main(int argc, char* argv[]) { ll n; ll num; ll a; ll b; ll count = 0; ll temp = 0; scanf("%lld", &n); for (int i = 0; i < n; ++i) { scanf("%lld", &num); v.push_back(num); } sca..

article thumbnail
[C++] 백준 2607번 비슷한 단어
알고리즘 2019. 9. 19. 02:22

비슷한 단어를 찾는 문제입니다. 이루어진 구성요소가 같거나(개수도 동일) 같은 상태에서 하나의 문자를 바꿔서 같아지거나, 하나의 문자를 추가하거나, 하나의 문자를 빼서 같은 문자가 되면 비슷한 문자입니다. 문자를 배열에 개수를 저장해놓고 1. 길이가 2이상 다르거나, 2. 다른 문자가 3개이상이거나, 3. 다른 문자가 2개일 때 바꿔서 같을 수 있을 때 의 경우 카운트를 증가해줍니다. #include #include #include #include #include using namespace std; int main(int argc, char * argv[]) { int n; int index = 0; int count = 0; int dif = 0; int flag = 0; int xc; int yc;..

article thumbnail
[C++] 백준 2563번 색종이
알고리즘 2019. 9. 19. 02:19

색종이의 총 넓이를 구하는 문제입니다. 가로 세로 전체 크기만큼의 2차원 배열을 만들고 x, y를 입력받고 x +10, y + 10까지를 전부 1로 바꿔줍니다. 이를 반복하고 마지막에 1로 되어있는 개수를 세어었습니다. #include #include #include #include using namespace std; int main(int argc, char * argv[]) { int n; int x, y; int count = 0; int map[110][110]; cin >> n; memset(map, 0, sizeof(map)); while (n--) { cin >> x >> y; for (int i = x; i < x + 10; ++i) { for (int j = y; j < y + 10; ..

article thumbnail
[C++] 백준 10807번 개수 세기
알고리즘 2019. 9. 19. 02:17

각 숫자에 대한 배열을 만들고 수가 나올때마다 배열의 값을 1씩 추가해줘서 개수를 저장해둡니다. 그리고 찾는 숫자가 있는 배열위치의 값을 출력하면 됩니다. #include #include #include #include using namespace std; int main(int argc, char * argv[]) { int n; int num; int find; int arr[210]; cin >> n; memset(arr, 0, sizeof(arr)); for (int i = 0; i > num; ++arr[num + 100]; } cin >> find; cout

article thumbnail
[C++] 백준 2309번 일곱 난쟁이
알고리즘 2019. 9. 19. 01:14

7명의 값이 100이 되는것을 찾는 문제입니다. 9명의 값을 전부 더한 다음 2명의 값을 빼서 100이 되는 값을 찾아서 해결하였습니다. #include #include #include using namespace std; int people[10]; queue q; void print(int x, int y) { for (int i = 0; i < 9; ++i) { if (i == x || i == y) { continue; } cout people[i]; sum += people[i]; } sum -= 100; sort(people, people + 9); for (int i = 0; i < 9; ++i) { sub += people[i]; x = i; for (int j = i + 1; j < 9;..

article thumbnail
[C++] 백준 9660번 돌 게임 6
알고리즘 2019. 9. 18. 11:04

마지막 돌을 가져가는 사람이 이기게 됩니다. 1~7까지의 경기를 보면 다음과 같습니다. 1 = SK 2 = CY 3 = SK 4 = SK 5 = SK 6 = SK 7 = CK ... 8~14의 경기도 위와 같습니다. 위의 규칙을 보았을때 주기는 7이며, 2로 나누어떨어지거나, 7로 나누어떨어질 경우 CY가 이기는 것을 알 수 있습니다. #include #include using namespace std; int main(int argc, char* argv[]) { long long n; cin >> n; if (n % 7 == 0 || n % 7 == 2) { cout

article thumbnail
[C++] 백준 9659번 돌 게임 5
알고리즘 2019. 9. 18. 10:53

마지막 돌을 가져가는 사람이 이기게 됩니다. n이 2로 나누어떨어질 경우 창영이가 이기고 n이 2로 나누어떨어지지 않을 경우 상근이가 이깁니다. #include #include using namespace std; int main(int argc, char* argv[]) { long long n; cin >> n; if (n % 2 == 1) { cout

article thumbnail
[C++] 백준 9658번 돌 게임 4
알고리즘 2019. 9. 18. 10:50

DP로 문제를 풀어보았습니다. 상근이를 기준으로 하였으며 (1 = 승리, 0 = 패배) DP[i -1], DP[i - 3], DP[i - 4]이 1이면 지는 경우고 0이면 이기는 경우라고 판단하였습니다. #include #include using namespace std; int main(int argc, char* argv[]) { int n; int DP[1010]; cin >> n; DP[1] = 0; DP[2] = 1; DP[3] = 0; DP[4] = 1; for (int i = 5; i

검색 태그