문제풀이
-
프로그래머스 2020블라인드 : 블록 이동하기-Java문제풀이/Programmers 2020. 12. 19. 20:52
문제 링크입니다. programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 문제 분석 : 상, 하, 좌, 우 그리고 회전이 가능한 로봇을 (1,1) 위치에서 (N,N)위치로 이동하는 문제로 로봇의 현재 위치에서의 가능한 모든 이동을 할 수 있도록 코드를 작성했다. 로봇은 가로, 세로 형태 중 한가지로 존재하기 때문에 가로형태일 때와 세로형태일 때를 나누어 명령을 수행하도록 구현했고 로봇이 차지하는 두 칸중 한 칸이라도 (N,N)에 도착하면 되는 조건이 존재하지만..
-
백준 14503번 로봇 청소기 -Java문제풀이/BOJ 2020. 12. 19. 20:32
문제 링크입니다. www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 분석 : 현재 위치를 청소하고 왼쪽 방향으로 이동하는 로봇 청소기의 구현으로 왼쪽 방향으로 이동을 하면서 청소할 수 있는 칸의 최대 값을 구하는 문제이다. 문제 접근 : 1. 현재 위치를 청소 2. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향으로 탐색 진행 2.1. 왼쪽 칸이 청소되어 있지 않다면 왼쪽 방향으로 회전 후 한 칸 전진 쉽게 말해 왼쪽으로 한 칸 이동하고 1번으로 돌아간다..
-
백준 12100번 2048(Easy) -Java문제풀이/BOJ 2020. 12. 19. 20:20
문제 링크 - > www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제 분석 : 각 블록들은 상, 하, 좌, 우 네 방향 중 한 방향으로 모두 이동하게 된다. 이 때, 같은 값을 가지는 두 블록이 충돌한다면 두 블록이 하나로 합쳐지게 되는데 한번의 이동에서 합쳐진 블록은 다음 이동까지 합쳐질 수 없는 조건에서 최대 5번까지의 이동 중 나올 수 있는 가장 큰 값을 구해야 하는 문제이다. 상 -> (상, 하, 좌, 우) -> (상, ..