알고리즘/BOJ

백준 20056번 마법사 상어와 파이어볼

꾸준함. 2021. 4. 30. 00:54

문제 링크입니다: www.acmicpc.net/problem/20056

 

20056번: 마법사 상어와 파이어볼

첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치

www.acmicpc.net

문제에서 주어진 과정대로 풀면 어렵지 않게 풀 수 있는 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 우선, 데이터를 저장할 자료구조를 정해야합니다.

1.1 저 같은 경우 파이어볼들이 위치한 좌표를 저장하는 벡터

1.2 같은 좌표에 여러개의 파이어볼이 위치할 수 있으므로 좌표가 key, 해당 좌표에 위치한 파이어볼들의 정보를 가진 벡터가 value인 map 자료구조를 사용했습니다.

2. 파이어볼들을 이동시키고 (moveFireBalls)

3. 같은 좌표에 파이어볼들이 여러개 있다면 문제에서 주어진대로 처리를 해줍니다. (processFireballs)

4. 2~3번을 K번 반복한 뒤 결과를 구해줍니다. (getTotalMass)

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형