baekjoon icon indicating copy to clipboard operation
baekjoon copied to clipboard

[ADD] 21611 python solution

Open cieske opened this issue 2 years ago • 0 comments

백준 문제 솔루션

문제 번호

마법사 상어와 블리자드

백준 아이디

cieske

문제 풀이

푸는 방법이 사람마다 정말 다양할텐데... 저는 회오리를 먼저 1자형 리스트로 만들고, 동서남북 방향으로 블리자드를 쏠 때 몇 번째 인덱스의 구슬이 지워지는지 먼저 구해두는 방식으로 접근했습니다.

블리자드 발동 시 맞은 구슬 빼고 나머지를 앞으로 이동시켜주고, 폭발 단계에서는 쭉 훑으면서 폭발해야 하는 구간을 저장해둡니다. 이후 발동 단계에서 했던 것과 똑같이 폭발하면서 사라진 구슬을 제외하고 나머지를 앞으로 이동시켜줍니다.

변화 단계에서는, 조건에 맞게 연속하는 구슬이 있으면 개수, 번호를 new_map에 추가, 없으면 1, 번호를 new_map에 추가하고, 블리자드 발동에 사용되는 l_map에 new_map을 씌워서 위 과정을 반복합니다.

폭발 단계에서 폭발하는 경우 sol에 저장해두고, 답에 맞게 마지막에 출력합니다.

cieske avatar Jun 13 '22 12:06 cieske