삼성역량

    3190_뱀

    https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 뱀이 사과를 먹고 길어져서 벽에 부딪히거나 하면 끝나는 게임이다. 다들 한번쯤 해본 적 있을 것이다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, 몸길이는 변하지 않는다. 문제에서 해당 멘트를 제공해 주는데 정말 코드로 구..

    12100_2048(easy)

    https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 2048을 구현하면 되는 문제이다. 결국 5번의 전체탐색을 해야하는데 이는 dfs를 사용했다. 그리고 위,오른쪽,아래,왼쪽으로 이동시킬때 문제를 쪼개서 생각해 보았다. 해당 부분을 위로 올리는 과정을 생각해보자. 4개의 세로줄이 있는데 이를 왼쪽부터 차례대로 하나씩 올리는 방향으로 계산을 할 것이다. 우선 왼쪽 상단부터 2,2,2를 순서대로 빼서 큐에 넣는다고 생각해보..

    13460_구슬탈출 2

    https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 삼성역량 테스트 문제였다고 한다. 예시에 있을법한 반례들이 거의 다 주어져서 그런지 시간은 조금 걸렸지만 도움을 안받고 스스로 푸는데에는 성공했다. 문제를 접근하는 것은 간단했는데 꼼꼼하게 체크하는것이 중요했다. 전체적인 흐름은 아래와 같다. 1. R,B,O의 좌표를 처음 가지고 시작 2. 큐를 활용하여 bfs 탐색 (상하좌우) 3. B가 O위치에..