이 블로그 검색

2018년 10월 30일 화요일

[백준 16235] 나무 재테크

[ 백준 16235 : 나무 재테크 ]

2018 삼성전자 sw직무 하반기 기출문제 입니다.
문제는 단순 구현에 소팅을 어떤식으로 진행하는지가 관건이 되는 문제 같습니다.
역시나 이문제도 역대 삼성전자 기출문제처럼 조건을 빼먹지 않고 구현을 하면 되는 문제입니다.

저는 (봄,여름) (가을) (겨울) 이런식으로 함수를 짜서 k만큼 반복을 해서 마지막에 살아있는 나무들의 갯수를 셌는데
이차원 벡터에 나무를 직접 심어주고 죽여주고 이런식으로 진행했습니다.


봄에는 무조건 양분이 나무의 나이만큼 있으면 나무의 나이를 ++ 해주고 양분의 양을 나무 나이만큼 - 해줍니다.
그리고 나무의 나이가 5로 나누어떨어지는지를 여기서 체크를 미리해 5로 나누어 떨어진다면 큐에 집어넣어줍니다.
또한, 나무의 나이만큼 양분이 없다면 그 이후로는 벡터에 있는 값들을 pop_back해가면서 나이/2 만큼 양분에 더해줍니다.

이렇게 봄,여름 과정을 끝내고 가을 함수를 준비합니다.
가을에는 큐에 집어넣은 나무들을 BFS알고리즘을 이용해 주위 8방향으로 번식시킵니다.
겨울에는 처음 입력한 양분만큼 더해주는데 이걸 봄 여름과정에서 해도 될듯합니당.


그냥 k만큼 반복한 후의 이차원 벡터의 크기가 답이 됩니다.


댓글 없음:

댓글 쓰기

[백준 16236] 아기 상어

[ 백준 16236 : 아기 상어 ] 2018 삼성전자 sw직무 하반기 기출문제입니다. 역대 삼성전자 기출문제가 그렇듯 역시나 BFS,DFS,완탐,DP,단순구현 입니다. 저는 문제를 단순히 BFS로 풀어갔습니다. 조건만 잘 지킨다면 한번에 ...