본문 바로가기

큐문제2

[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 3190번 뱀 www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 이번 문제는 큐를 활용하여 가는 곳의 위치를 저장하고 사과가 없으면 큐의 맨 앞을 제거하고 뱀의 머리 좌표를 큐에 넣고, 사과가 있으면 그냥 뱀의 머리 좌표만 큐에 넣어가면서 큐를 업데이트해주는 문제였다. 이 것을 구현하기 위해 map을 -1로 초기화해주고 사과가 있는 위치를 APPLE이라고 표시를 해주고 방향이 바뀌는 시간과 방향을 배열에 저장해 준다. 무조건 처음에는 오른쪽이므로 오른쪽을 기준으로 char가 오면 .. 2021. 5. 13.
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 12100번 2048 (Easy) www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 굉장히 복잡한 문제처럼 보이지만 N이 20이 max이고 5번 이동만 하면 되기 때문에 완전탐색 기법을 사용하여 다 해보면 된다. map을 매번 저장해주고 [왼쪽,오른쪽,위,아래] 로 블록을 밀어주고 그 블록을 그대로 또 한번 [왼쪽,오른쪽,위,아래] 방향으로 밀어주면서 이렇게 5번을 해주고 5번이 됐을 때 블록의 최대 값을 return해주면 모든 case를 다 돌려 볼 수 있다. 1.. 2021. 5. 11.
300x250