백준/구현 9

백준 12100번 2048(easy)

시뮬레이션 문제이다. 이동하는 벽 부분에서 쭉 보면서 겹치는 블록이 있는지를 확인해가면서 같으면 합쳐지도록 deque을 이용해서 만들어주었다. 예를 들면 다음과 같다. 4*4의 1행이 2 2 4 8이라고 하자. 코드에 구현된 알고리즘을 바탕으로 deque에 넣는 과정은 다음과 같다. 맨 처음에 deque은 비어있고, 그래서 첫 번째 2는 {2, 0}으로 들어간다. 두 번째 2의 경우 덱의 뒷 부분이 {2, 0}이므로 같은 블록이면서 이전에 합쳐지지 않았으니 이를 두 번째 2와 합쳐서 다시 덱에 넣어준다. 그럼 덱에는 {4, 1}이 들어있다. 1이 나타내는 건 합쳐졌다는 뜻이고, 0은 합쳐지진 않았다는 뜻이다. 세 번째 4의 경우 덱을 확인하는데, 덱이 안비어있고 덱의 가장 뒤 원소가 {4, 1}인데 이 ..

백준/구현 2022.03.09