시뮬레이션
백준 20056 : 마법사 상어와 파이어볼
문제 링크 접근 방법 시뮬레이션 문제이기 때문에 문제에서 어떤 데이터가 필요한지 먼저 분석했다. 파이어볼이 이동한 후 위치에 대한 파이어볼 정보를 파악해야 했다 . → map[][]에 파이어볼의 정보를 저장 한 위치에 여러 개의 파이어볼이 존재할 수 있다. → map[][]을 리스트로 보관해야 할까? (하나로 합쳐서 저장할 수 있다) 파이어볼이 나누어지는 과정의 단순화 질량 : 파이어볼들의 질량 합에서 상수인 5로 나누기 때문에 누적해서 저장하면 된다. 속력 : 파이어볼들의 속력 합에서 개수로 나누기 때문에 누적해서 저장하고 개수를 따로 세어주면 된다. 방향 : 모두 홀수이거나 모두 짝수인 경우를 생각해야 하는데 Boolean 2개로 처리하자. 따라서 파이어볼 정보(m, s, d, cnt, odd, ev..
백준 19236 : 청소년 상어
문제 링크 접근 방법 시뮬레이션 문제이기 때문에 문제 그대로 풀었고 물고기와 상어가 이동할 때 어떤 데이터가 필요한지 먼저 분석했다. 물고기의 이동 물고기 번호 순서대로 이동이 일어나야 한다 → 번호에 따른 물고기 위치 파악 물고기의 좌표값이 교환된다 상어의 이동 좌표에 있는 물고기의 번호를 알아야 한다 → 위치에 따른 물고기 번호 파악 우선 물고기 정보(x, y, 방향)을 담는 Fish 클래스를 선언하고 정보를 관리하는 배열 Fish[]를 만들어서 물고기 번호로 위치와 방향을 알 수 있게 만들었다. 또한, int[][] map에는 해당 좌표의 물고기의 번호를 저장하였다. 물고기의 이동시 Fish[]를 순서대로 보면서 갈 수 있는 위치라면 위치를 교환해주고 방향값을 갱신하였다. 상어의 이동시 갈 수 있는..