[ 백준 16234 ] 인구 이동 (C++)
[문제보기] [해결과정] 1. - int형 arr배열, int형 check배열 선언 - int cnt (나라 합), int sum (나라의 값들을 합한 값), int checkCnt (check배열에 같은 수가 저장되어 있으면 서로 동맹), bool flag (변화가 있는지 없는지, 변화가 없다면 전체 STOP) 2. n, L, R, arr 입력 3. while 반복문 실행 - 방문체크 초기화, checkCnt (=1) 초기화, flag (=true) 초기화 - arr 배열 전체 순회하면서 방문하지 않았다면 queue에 삽입 - BFS 실행하며 인원조건이 맞는지 확인, 인원조건이 맞다면 check[i][j] = checkCnt 하고 queue에 삽입, 그리고 cnt++(나라 합) 해주고 sum+=arr[..
2020. 2. 12.
[ 백준 16235 ] 나무 재테크 (C++)
[문제보기] [해결과정] 1. 2차원 vector로 맵 구현 (arr), 현재 양분 상태 저장 맵(map), S2D2 기계가 추가할 양분 맵 (mapS) 구현 2. 양분 상태의 초기값은 5, S2D2 양분 입력받기 3. 나무 입력받기 (y, x, age) 순으로... 4. 봄, 여름, 가을, 겨울 구현하기 (봄과 여름은 함께 구현) - 봄, 여름 : arr[i][j].size() 가 0이 아니라면, 나무가 있는 상태 이므로 접근, arr vector를 오름차순으로 정렬 후 임시 vector를 하나 만들어주고, 현재 나무의 나이와 양분 상태를 체크하여 양분이 충분하다면 양분 맵은 나무의 나이만큼 줄여주고, 임시 vector에 추가. 만약 나이만큼 되지 않는다면 death 변수에 나무의 나이/2 만큼 더함...
2020. 1. 31.
[ 백준 1614 ] 영식이의 손가락 (C++)
[문제보기] [해결과정] 아픈 손가락 별로 경우의 수가 어떻게 나오는지 규칙성 파악 1. 첫 번째 손가락 일 경우(엄지) : 0, 8, 16, 24, 32, 40, 48 ---> 8씩 증가 2. 두 번째 손가락 일 경우(검지) : 1, 7, 9, 15, 17, 23, 25 ---> 초기값 1 : 6 증가, 2 증가 반복 3. 세 번째 손가락 일 경우(중지) : 2, 6, 10, 14, 18, 22, 26 ---> 초기값 2 : 4씩 증가 4. 네 번째 손가락 일 경우(약지) : 3, 5, 11, 13, 19, 21, 29 ---> 초기값 3 : 2 증가, 6 증가 반복 5. 다섯 번째 손가락 일 경우(새끼) : 4, 12, 20, 28, 36, 44 ---> 초기값 4 : 8씩 증가 [소스코드] 1 2 ..
2019. 12. 4.