-
[Java] BOJ 20125 쿠키의 신체 측정개발자 취업/코딩테스트 준비 2023. 5. 26. 11:17반응형
20125번: 쿠키의 신체 측정
쿠키런은 데브시스터즈에서 제작한 모바일 러닝 액션 게임이다. 마녀의 오븐에서 탈출한 쿠키들과 함께 모험을 떠나는 게임으로, 점프와 슬라이드 2가지 버튼만으로 손쉽게 플레이할 수 있는
www.acmicpc.net
정답 코드
- 4방향 탐색을 활용해 쿠키 심장 찾기
- 심장으로부터 거리 측정해서 신체 부위 길이 구하기
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static char[][] arr; static int N; static int[] dx = { -1, 1, 0, 0 }; static int[] dy = { 0, 0, 1, -1 }; public static void main(String[] args) throws NumberFormatException, IOException { br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); arr = new char[N][N]; for (int i = 0; i < N; i++) { arr[i] = br.readLine().toCharArray(); } int[] heart = new int[2]; for (int i = 1; i < N - 1; i++) { for (int j = 1; j < N - 1; j++) { if (isHeart(i, j)) { heart[0] = i; heart[1] = j; break; } } } int leftArm = fun(heart, 0); int rightArm = fun(heart, 1); int body = fun(heart, 2); int leftLeg = fun(new int[] { heart[0] + body, heart[1] - 1 }, 2); int rightLeg = fun(new int[] { heart[0] + body, heart[1] + 1 }, 2); System.out.println((heart[0] + 1) + " " + (heart[1] + 1)); System.out.println(leftArm + " " + rightArm + " " + body + " " + leftLeg + " " + rightLeg); } private static int fun(int[] heart, int dic) { int ans = 0; int x = heart[1] + dx[dic]; int y = heart[0] + dy[dic]; while (arr[y][x] == '*') { x += dx[dic]; y += dy[dic]; ans++; if (y < 0 || x < 0 || x >= N || y >= N) { break; } } return ans; } private static boolean isHeart(int y, int x) { for (int dic = 0; dic < 4; dic++) { int nx = x + dx[dic]; int ny = y + dy[dic]; if (arr[ny][nx] != '*') { return false; } } return true; } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[Java] BOJ 1927 최소 힙 (0) 2023.05.26 [Java] BOJ 21921 블로그 (0) 2023.05.26 [Java] BOJ 1213 팰린드롬 만들기 (3) 2023.05.26 [Java] BOJ 11729 하노이 탑 이동 순서 (0) 2023.05.03 [Java] BOJ 14888 연산자 끼워넣기 (0) 2023.05.01