CS/Algorithm90 [BOJ][C++] 15662 톱니바퀴(2) [BOJ][C++] 15662 톱니바퀴(2) 문제 https://www.acmicpc.net/problem/15662 풀이 톱니가 1번부터 시작하는 것에 실수를 해서 시간이 걸렸습니다ㅠㅠ 회전할 때마다 우선 check_move로 톱니의 극을 확인해주었습니다. 그 후 움직여야 하는 톱니의 번호와 방향을 이용해 톱니를 움직입니다. 미리 입력한 isMove를 통해 true이면 재귀를 통해 양 옆 톱니가 회전 가능하도록 했습니다. 그리고 visited를 통해 이미 회전을 했을 경우는 다시 회전하지 않도록 설정했습니다! 톱니바퀴1이랑 비슷하지만 톱니바퀴 갯수만 달라졌네요! 코드 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int g.. 2019. 2. 25. [BOJ][C++] 14500 테트로미노 [BOJ][C++] 14500 테트로미노 문제 https://www.acmicpc.net/problem/14500 풀이 테트리스 모형대로 DFS 탐색을 해줍니다. DFS로 탐색할 때 사방 모두를 탐색하기 위해서 백트래킹을 이용했습니다. 그리고 ㅗㅓㅏㅜ만 따로 만들어서 탐색해주면 돼요. 이 때, 중앙 값을 기준으로 세 방면을 더해주고 maxVal과 비교하는 식으로 구했어요. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int n, m; int map[500][500]; bool visited[500][500]; int maxVal = 0; int dx[] = { -1,0,1,0,-1,0 }; int dy[] = { 0,.. 2019. 2. 21. [BOJ][C++] 16235 나무재테크 [BOJ][C++] 16235 나무재테크 문제 https://www.acmicpc.net/problem/16235 풀이 시간초과 때문에 몇 번을 다시 풀었던 문제 입니다. 문제 풀면서 시간 고려도 하는 버릇을 길러야겠어요 2차원 배열에 벡터 형태로 나무를 쌓는 식(z축)으로 했습니다. 그리고 k년만큼 for문을 돌면서 봄, 여름, 가을, 겨울 을 순으로 코드를 짰어요. 봄 > 봄은 나이만큼 양분을 먹노 나이가 증가합니다. 나이만큼 양분이 없는 경우 여름에 비료로 쓸 수 있도록 dead배열을 하나 더 만들어 나이/2를 한 값을 저장해줍니다. 주의할 것은 나이가 어린 순 부터 비료를 쓸 수 있기에 sort를 해주었습니다. 여름 > 저장해 놓았던 dead배열의 값을 더해줍니다. 이 때, dead배열 초기화를 .. 2019. 2. 16. [BOJ][C++] 1966 프린터 큐 [BOJ][C++] 1966 프린터 큐 문제 https://www.acmicpc.net/problem/1966 풀이 입력받은 문서의 우선순위를 인덱스와 함께 큐에 넣어줍니다. (pair이용했어요) 그리고 또 하나의 배열을 생성해서 sort를 이용해 내림차순 정렬을 해줍니다. 그리고 while문을 사용해서 내림차순 정렬된 배열을 이용해 차례대로 큐의 우선순위값을 비교합니다. 이 때, 일치하면 큐에서 값을 빼고 index값과 M값을 비교합니다. 일치하면 while문을 빠져나오고 그렇지 않으면 또 다음 map의 값을 비교할 수 있도록 now변수의 값을 올려줍니다. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std;.. 2019. 2. 1. 이전 1 2 3 4 5 6 7 8 ··· 23 다음