coronal95   2년 전

  1. 모든 파이어볼이 자신의 방향 di로 속력 si칸 만큼 이동한다.
    • 이동하는 중에는 같은 칸에 여러 개의 파이어볼이 있을 수도 있다.
  2. 이동이 모두 끝난 뒤, 2개 이상의 파이어볼이 있는 칸에서는 다음과 같은 일이 일어난다.
    1. 같은 칸에 있는 파이어볼은 모두 하나로 합쳐진다.
    2. 파이어볼은 4개의 파이어볼로 나누어진다.
    3. 나누어진 파이어볼의 질량, 속력, 방향은 다음과 같다.
      1. 질량은 ⌊(합쳐진 파이어볼 질량의 합)/5⌋이다.
      2. 속력은 ⌊(합쳐진 파이어볼 속력의 합)/(합쳐진 파이어볼의 개수)⌋이다.
      3. 합쳐지는 파이어볼의 방향이 모두 홀수이거나 모두 짝수이면, 방향은 0, 2, 4, 6이 되고, 그렇지 않으면 1, 3, 5, 7이 된다.
    4. 질량이 0인 파이어볼은 소멸되어 없어진다.

여기서 2번같은 경우, 4개의 파이어볼이 나뉘어진 후 또 2개 이상의 파이어볼이 있을 수 있기 때문에 map을 체크해서 또 2개 이상의 fireball이 겹쳐지는 현상이 발생한다면 2번을 반복해줘야 하는 것이 맞나요?

또 주어진 테스트케이스 2번의 경우 제 생각으로는 답이 8이 아닌 0이어야 할 것 같습니다 ㅠㅠ 

첫 번째 명령

0 0 2 0 ( (1,1), (1,4)가 (1,3)에서 만나 합쳐짐 )
0 0 0 0
0 0 0 0
0 0 0 0

0 1 0 1 ( (1,3)에 있는 파이어볼이 4방향으로 흩어짐
0 0 1 0
0 0 0 0
0 0 1 0

두 번째 명령

2 0 0 0 ( (1,2), (1,4)에 있는 파이어볼이 합쳐짐 )
0 0 0 0
0 0 2 0 ( (2,3), (4,3)에 있는 파이어볼이 합쳐짐 )
0 0 0 0

0 0 0 0 ( 합쳐진 파이어볼의 중력이 0이 되어 사라짐 )
0 0 0 0
0 0 0 0 ( 위와 동일 )
0 0 0 0

ans:: 0

이 되어야 할 것 같은데, 제가 놓친 부분을 알려주신다면 정말 감사하겠습니다. (__) 

rnjstpgns91   2년 전

첫번째 명령

0 0 2 0 ( (1,1), (1,4)가 (1,3)에서 만나 합쳐짐 )
0 0 0 0
0 0 0 0
0 0 0 0

0 0 4 0 파이어볼 4개로 나뉘어짐
0 0 0 0
0 0 0 0
0 0 0 0

두번째 명령

0 1 0 1 ( (1,3)에 있는 파이어볼이 4방향으로 흩어짐
0 0 1 0
0 0 0 0
0 0 1 0

겹치는 곳 없음. 2번째 조건 해당 x

=> 각 파이어볼 질량이 2씩이니 ans = 8 입니당


coronal95   2년 전

궁금하던 점이 속시원히 해결되었습니다. 감사합니다 ㅠㅠ!! 

댓글을 작성하려면 로그인해야 합니다.