문제 출처
1. 문제설명
2. 알고리즘 설계
- 문제의 내용을 그대로 구현해주면 되는데 헷갈릴 만한 포인트가 몇 가지 있었다.
- 가장 빨리 발견한 곰팡이를 채취할 때
- 어떤 조건도 없이 그냥 인덱스 위치가 가장 앞에 있는 걸 잡아먹는다.
- 같은 칸에 여러 개의 곰팡이가 존재할 때
- 크기가 같으면 어쩌나 고민했지만, 문제에 크기가 전부 다르다고 명시되어 있음.
- 벽을 만나면 방향이 정반대가 되는데,
- 바뀐 방향이 유지되어야 한다는 것!
- 위로 올라가다 벽을 만나면 방향이 아래로 바뀌게 되고
- 향후 시뮬레이션에서도 이 아래 방향으로 시작해야 한다!
- 언급된 점들만 주의하면, 문제없이 구현할 수 있었다.
3. 전체 코드
4. 소감
- 잡아먹힌 곰팡이를 (-1,-1)로 처리하였다.
- 지울 벡터의 인덱스를 기억했다가 erase로 처리해도 좋았을 거 같다.
- 거의 모든 함수에서 모든 곰팡이를 탐색한다.
- 이거에 대한 효율성에 대해 고민한다면 시간을 조금 더 줄일 수 있을 거 같다.
- 내 코드 수행 시간은 451ms인데, 찾아보니 82ms로 해결한 사람도 있었다.