umilove98의 블로그

백준 1730 Java 자바 본문

algorithm/백준

백준 1730 Java 자바

umilove98 2021. 8. 18. 13:45
반응형

n을 입력받아 n x n 형태의 배열을 만들고 '.' 으로 전부 채운다.

로봇 팔의 이동을 나타내는 문자열을 입력받아 한 문자씩 자르고 각 문자에 맞춰서 로봇 팔이 이동하는 것을 나타낸다 

수직으로 이동시에 . 이라면 | 로 변경 - 이라면 + 로 변경

수평으로 이동시에 . 이라면 - 로 변경 | 이라면 + 로 변경

이를 반복한 후 모든 이동을 마치면 전체 배열을 출력한다.

 

 

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
 
public class Q1730 {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String s = br.readLine();
        
        char[][] board = new char[n][n];    //    n x n 의 배열 생성
        for(char[] row: board)                // 배열을 전부 . 로 채움 
            Arrays.fill(row, '.');
        
        int x = 0, y = 0;                    // 판 위에서 로봇 팔의 위치를 나타낼 인덱스 변수
        
        for(int i = 0; i < s.length(); i++) {
            char move = s.charAt(i);
            
            switch(move) {
            case 'D':
                if(x != n-1) {                // 로봇 팔이 아래로 더 움직일 수 있는지 확인 
                    
                    if(board[x][y] == '.') {
                        board[x][y] = '|';
                    }else if(board[x][y] == '-') {
                        board[x][y] = '+';
                    }
                    x++;
                    if(board[x][y] == '.') {
                        board[x][y] = '|';
                    }else if(board[x][y] == '-') {
                        board[x][y] = '+';
                    }
                }
                break;
            case 'U':
                if(x != 0) {                // 로봇 팔이 위로 더 움직일 수 있는지 확인
                    if(board[x][y] == '.') {
                        board[x][y] = '|';
                    }else if(board[x][y] == '-') {
                        board[x][y] = '+';
                    }    
                    x--;
                    if(board[x][y] == '.') {
                        board[x][y] = '|';
                    }else if(board[x][y] == '-') {
                        board[x][y] = '+';
                    }
                }
                
                break;
            case 'L':
                if(y != 0) {                // 로봇 팔이 왼쪽으로 더 움직일 수 있는지 확인
                    if(board[x][y] == '.') {
                        board[x][y] = '-';
                    }else if(board[x][y] == '|') {
                        board[x][y] = '+';
                    }
                    y--;
                    if(board[x][y] == '.') {
                        board[x][y] = '-';
                    }else if(board[x][y] == '|') {
                        board[x][y] = '+';
                    }
                }
                break;
            case 'R':
                if(y != n-1) {                // 로봇 팔이 오른쪽으로 더 움직일 수 있는지 확인
                    if(board[x][y] == '.') {
                        board[x][y] = '-';
                    }else if(board[x][y] == '|') {
                        board[x][y] = '+';
                    }
                    y++;
                    if(board[x][y] == '.') {
                        board[x][y] = '-';
                    }else if(board[x][y] == '|') {
                        board[x][y] = '+';
                    }
                }
                break;
            }
        }
        for(int i = 0; i < n; i++) {            // 결과물 출력
            for(int j = 0; j < n; j++) {
                System.out.print(board[i][j]);
            }
            System.out.println();
        }
    }
}
 
cs
반응형

'algorithm > 백준' 카테고리의 다른 글

백준 1769 Java 자바  (0) 2021.08.20
백준 2420 Java 자바  (0) 2021.08.19
백준 2061 Java 자바  (0) 2021.08.18
백준 1544 Java 자바  (0) 2021.08.17
백준 1712 Java 자바  (0) 2021.08.16