본문 바로가기

프로그래머스/lv0

캐릭터의 좌표

/* 캐릭터의 좌표
 * 게임에는 up, down, left, right 방향키가 있으며
 * 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다.
 * [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1],
 * down을 누른다면 [0, -1],
 * left를 누른다면 [-1, 0],
 * right를 누른다면 [1, 0]입니다.
 * 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다.
 * 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에
 * 캐릭터의 좌표 [x, y]를 return
 *
 * [0, 0]은 board의 정 중앙에 위치합니다.
 * board의 가로 크기가 9라면 캐릭터는 왼쪽으로 최대 [-4, 0]까지
 * 오른쪽으로 최대 [4, 0]까지 이동할 수 있습니다.
 *
 * keyinput                                     board       result
 * ["left", "right", "up", "right", "right"]    [11, 11]    [2, 1]
 * ["down", "down", "down", "down", "down"]     [7, 9]      [0, -4]
 */
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class programmer_0_85 {
    static String[] a1 = {"left""right""up""right""right"};
    static int[] b1 = {1111};
    static String[] a2 = {"down""down""down""down""down"};
    static int[] b2 = {79};
    public int[] solution(String[] keyinput, int[] board) {
        int[] answer = {0,0};
        int[] max = {(board[0]-1)/2 , (board[1]-1)/2};
        
        for(String n : keyinput){
            switch(n){
                case "right" : 
                    if(max[0> answer[0])  answer[0= answer[0+ 1;
                    break;
                case "left" : 
                    if(-max[0< answer[0])  answer[0= answer[0- 1;
                    break;
                case "up" : 
                    if(max[1> answer[1])  answer[1= answer[1+ 1;
                    break;
                case "down" : 
                    if(-max[1< answer[1])  answer[1= answer[1- 1;
                    break;                                                        
            }
            System.out.println("##" + answer[0+ " , " + answer[1]);
        }
        for(int i : answer) System.out.println(i);
 
        return answer;
    }
    public static void main(String args[]){
        programmer_0_85 t = new programmer_0_85();
        System.out.println("---------------------------------------");
        System.out.println("result = " + t.solution(a1,b1));
        System.out.println("---------------------------------------");
        System.out.println("result2 = " + t.solution(a2,b2));
        System.out.println("---------------------------------------");
    }
}
cs

'프로그래머스 > lv0' 카테고리의 다른 글

합성수 찾기  (0) 2022.12.02
팩토리얼  (0) 2022.12.02
최댓값 만들기 (2)  (0) 2022.12.02
소인수분해  (0) 2022.12.02
외계어 사전  (0) 2022.12.02