Skip to content

Conversation

@tabss2003
Copy link
Collaborator

@tabss2003 tabss2003 commented Oct 10, 2022

풀이

  • 동시에 번식하려는 경우 생명력 높은 세포가 차지하게끔 하기 위해 우선순위 큐를 생명력이 큰 순으로 내림차순으로 정렬한 상태로 사용하였습니다.
  • map 크기는 NM인데, 위 아래로 최대 K만큼 커질 수 있으므로 2K+N, 2*K+M 으로 지정하였고, map의 가운데에서 핸들링하기위해 K+i,K+j 에서 입력을 받아줬습니다.
  • 큐의 사이즈가 활성화 상태인 세포와 비활성화 상태인 세포를 다 포함하기때문에 정답으로 큐의 사이즈를 출력하였습니다.
  • Cell 클래스로 세포의 위치 정보(x,y) ,생명력(k), 배양 시작 시간과, 배양 종료 시간(kstart,kend)을 담았습니다.
  • 배양 시작시간은 생명력과 동일하게 저장하였으며,
  • 배양 종료 시간의 경우 만약 배양 시작시간이 2이고, 생명력이 2일 경우-> 4시간 까지 번식을 할 수있고, 배양 시작시간이 3이고, 생명력이 3일 경우 3->6 시간까지 번식을 할 수 있어서 k*2를 해주었습니다.
  • 줄기세포의 초기상태를 큐에 넣는다
    • 번식 상태의 줄기세포는 우선순위 큐에 넣고 나머지는 다시 큐에 넣는다.
    • 우선 순위 큐로 bfs 수행하여 번식하고 새로운 줄기 세포는 큐에 넣는다.
  • -> 방금 태어난 줄기 세포는 비활성화 상태
    • 주어진 시간 동안 반복

리뷰 요청 사항

  • 더 많은 리뷰를 위해 자세히 적어주세요

느낀점 👻

  • 배열의 사이즈부터 생각을 많이 해야하는 문제여서 진이 빠지는 문제였습니다.

@0takkk
Copy link
Collaborator

0takkk commented Oct 10, 2022

저는 전부 우선순위 큐에 넣었는데
일반 큐에 넣어두었다가 활성 상태가 되는 순간만 우선순위 큐에 넣는 방법은 생각 못 했네요.
이러면 비활성과 활성 상태의 정렬이 필요없는 부분은 그냥 뽑은 순서대로 처리할 수 있겠네요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants