https://www.acmicpc.net/problem/12100필요한 로직 : 시뮬레이션[배경]중복된 논리, 중복된 코드들이 들어가 있어서 아쉬운 풀이다. 다음에 solve() 함수 하나에 up,down,left,right 모두를 축약할 수 있도록 리팩토링할 것이다.
[논리]up,down,left,right 함수 중 up,down함수를 대표로 하여 풀이한다. left,right는 arr순회 순서만 달라지므로 인덱스 관리에만 신경쓰면 된다. up함수는 "아래 행의 원소들"을 탐색하며 0이 아닌 원소를 끌어당겨야 한다. 현재 위치보다 아래 행을 계속 탐색하면서 끌어당기는 의미이므로 실제 순회는 행 우선순회 + range(0,N) 순회가 될 것이다.
반대로 down 함수의 경우 "윗행 원소들을..........
원문 링크 : 12100번 2048(Easy)