3190 - ๋ฑ€ [์„ฑ๊ณต(๋ฐ˜๋ก€ํžŒํŠธ)|02:14:43]

2024. 8. 9. 23:04ยท์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

๋ฌธ์ œ๐Ÿฆ– ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

 

  1. N*N ํฌ๊ธฐ์˜ ๋ณด๋“œ๊ฐ€ ์ฃผ์–ด์ง (2 <= N <= 100)
  2. ๋ฑ€์€ ๋งค ์ดˆ๋งˆ๋‹ค ๋‹ค์Œ ๊ทœ์น™์œผ๋กœ ์ด๋™
  3. ์ด๋™ ๊ฒฝ๋กœ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋ช‡ ์ดˆ์— ๋๋‚˜๋Š”๊ฐ€?
  4. ์‚ฌ๊ณผ์˜ ๊ฐœ์ˆ˜ K (0 <= K <= 100)
  5. ๋ฐฉํ–ฅ ๋ณ€ํ™˜ ์ •๋ณด L (1 <= L <= 100)

 

 

๐Ÿ’ก์•„์ด๋””์–ด

 

์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „์— ๋‹ค๋ฅธ ๋ฌธ์ œ์˜ ํฐ๋Œ๋‹˜ ๊ฐ•์˜ ํ•ด์„ค์—์„œ ๋ณด๋“œ๋ฅผ ๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ํ•ด์„ค์„ ๋ณด์•˜๋‹ค. ๊ทธ ์˜ํ–ฅ์œผ๋กœ ์ฒ˜์Œ์— ์ด ๋ฌธ์ œ๋„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „์ด๋ฉด ๋ณด๋“œ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 90๋„ ๋Œ๋ฆฌ๊ณ  ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „์ด๋ฉด ๋ณด๋“œ๋ฅผ ์™ผ์ชฝ์œผ๋กœ 90๋„ ๋Œ๋ฆฌ๋Š” ๋กœ์ง์„ ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋กœ์ง์— ๋Œ€ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด์•˜๋‹ค.

  1. ์ตœ๋Œ€ 100๋ฒˆ์˜ ๋ฐฉํ–ฅ ๋ณ€ํ™˜ ํšŸ์ˆ˜
  2. ๋ณด๋“œ๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ๋กœ์ง 100*100
  3. ์‹œ๊ฐ„์˜ ์ตœ๋Œ“๊ฐ’์€ ์ ์–ด๋„ 10000

๊ทธ๋Ÿผ ์ด 10000 * 100 * 10000 = 10000000000์œผ๋กœ ์•ฝ 100์–ต์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์•ˆ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ทธ๋ž˜์„œ ๋‘ ๋ฒˆ์งธ๋กœ ์ƒ๊ฐํ•ด๋‚ธ๊ฒŒ ๊ทธ๋ƒฅ dx, dy ๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ index ๊ฐ’์„ ๋‘๊ณ  ์ขŒ๋กœ ์ „ํ™˜ ์‹œ -1, ์šฐ๋กœ ์ด๋™ ์‹œ +1์„ ํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ ๋ณด๋“œ๋ฅผ ๋Œ๋ฆฌ๋Š” ๋กœ์ง ์ž์ฒด๊ฐ€ ์—†์–ด์ง€๋ฏ€๋กœ ์œ„์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์—์„œ 100 * 10000 = 1000000์œผ๋กœ ์ƒ๋‹นํžˆ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์–ด๋–ป๊ฒŒ ์›€์ง์ผ์ง€๋Š” ๋Œ€์ถฉ ์ •ํ–ˆ์œผ๋‹ˆ ๋ฌธ์ œ์˜ ๊ทœ์น™์—์„œ ์›€์ง์˜€๋Š”๋ฐ ์‚ฌ๊ณผ๋ฅผ ๋จน์ง€ ๋ชปํ–ˆ์„ ๋•Œ ๊ผฌ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ง€์›Œ์ค„์ง€ ์ƒ๊ฐํ–ˆ๋‹ค. ์ด๊ฑด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ArrayDeque๋ฅผ ํ™œ์šฉํ•ด ์ง€๋‚˜๊ฐ€๋Š” ์ขŒํ‘œ๊ฐ’์„ ๋‹ด์•„๊ฐ€๋ฉด์„œ 0์„ ๋งŒ๋‚˜๋Š” ์ˆœ๊ฐ„ ์ฒ˜์Œ ๋‹ด์€ ์ขŒํ‘œ์˜ ๊ฐ’๋ถ€ํ„ฐ ์ด๋™๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

 

์ด ํ•ต์‹ฌ ๋‘ ๊ฐ€์ง€๋งŒ ์ž˜ ํŒŒ์•…ํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋Š”๋ฐ ์ฒ˜์Œ ์ƒ๊ฐํ•ด๋‚ธ ๋ฐฉ๋ฒ•์„ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•ด๋ณด๋ ค๋‹ค 2์‹œ๊ฐ„์„ ํ›Œ์ฉ ๋„˜๊ฒจ๋ฒ„๋ ธ๋‹ค.

 

 

์ฝ”๋“œ

public class N_BOJ_3190 {
    static int[] dy = {0, 1, 0, -1};
    static int[] dx = {1, 0, -1, 0};

    static int[][] map;
    static char[] time;
    static int N, K, L;

    static ArrayDeque<Integer> q = new ArrayDeque<>();

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        N = Integer.parseInt(br.readLine());
        K = Integer.parseInt(br.readLine());

        map = new int[N][N];
        for (int i = 0; i < K; i++) {
            st = new StringTokenizer(br.readLine());
            int y = Integer.parseInt(st.nextToken());
            int x = Integer.parseInt(st.nextToken());

            map[y-1][x-1] = 1;
        }

        L = Integer.parseInt(br.readLine());
        time = new char[10001];
        for (int i = 0; i < L; i++) {
            st = new StringTokenizer(br.readLine());

            int t = Integer.parseInt(st.nextToken());
            char c = st.nextToken().charAt(0);
            time[t] = c;
        }

        int d = 0;
        int y = 0, x = 0;
        map[0][0] = 2;
        q.add(0);
        q.add(0);

        for (int t = 0; t < 10001; t++) {

            if (time[t] == 'D')
                d = (d + 1) % 4;
            else if (time[t] == 'L')
                d = (d - 1) < 0 ? 3 : d-1;

            int ny = y + dy[d];
            int nx = x + dx[d];

            if (ny < 0 || nx < 0 || ny >= N || nx >= N ||
                map[ny][nx] == 2) {
                System.out.println(t + 1);
                return;
            }

            if (map[ny][nx] == 0) {
                int yy = q.poll();
                int xx = q.poll();
                map[yy][xx] = 0;
            }

            map[ny][nx] = 2;
            q.add(ny);
            q.add(nx);

            y = ny;
            x = nx;
        }
    }
}

 

์ด๋ ‡๊ฒŒ ํ’€๊ณ ๋‚˜์„œ ํฐ๋Œ๋‹˜ ๊ฐ•์˜ ํ•ด์„ค์„ ๋ดค๋Š”๋ฐ ์‹œ๊ฐ„ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ฐฉํ–ฅ ์ „ํ™˜์„ ์ฝ”๋“œ์— ๋จผ์ € ๋‘˜ ์ˆ˜๋„ ์žˆ๊ณ  ๋‚˜์ค‘์— ๋‘˜ ์ˆ˜๋„ ์žˆ์—ˆ๋‹ค. ์‚ฌ์‹ค ์ด๊ฒŒ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€์„œ ์ข€ ํž˜๋“ค์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 8์ดˆ์— ์™ผ์ชฝ์œผ๋กœ ๋ฐฉํ–ฅ ์ „ํ™˜ํ•˜๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค๋ฉด, ํฐ๋Œ๋‹˜ ์ฝ”๋“œ๋Š” 8์ดˆ์— 7์ดˆ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  8์ดˆ์˜ ์œ„์น˜๋กœ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋™ ์ดํ›„์— ๋ฐฉํ–ฅ ์ „ํ™˜์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๊ณ  ๋ฐ˜๋ฉด์— ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” 8์ดˆ์—์„œ 9์ดˆ์˜ ์ด๋™ ์ขŒํ‘œ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ๋ฐฉํ–ฅ์ „ํ™˜์„ ๋จผ์ € ํ•ด์คฌ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค!!

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

17143 - ๋‚š์‹œ์™•  (0) 2024.08.24
17406 - ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 4 [์„ฑ๊ณต(๋ฐ˜๋ก€ํžŒํŠธ)|01:06:16]  (2) 2024.08.17
๋ฐฑ์ค€ 12094 - 2048 (Hard) [ํŒŒ์ด์ฌ]  (0) 2022.11.22
๋ฐฑ์ค€ 12100 - 2048 (Easy) [ํŒŒ์ด์ฌ]  (1) 2022.11.20
๋ฐฑ์ค€ 1541 - ์žƒ์–ด๋ฒ„๋ฆฐ ์•”ํ˜ธ [์ž๋ฐ”]  (1) 2022.10.31
'์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 17143 - ๋‚š์‹œ์™•
  • 17406 - ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 4 [์„ฑ๊ณต(๋ฐ˜๋ก€ํžŒํŠธ)|01:06:16]
  • ๋ฐฑ์ค€ 12094 - 2048 (Hard) [ํŒŒ์ด์ฌ]
  • ๋ฐฑ์ค€ 12100 - 2048 (Easy) [ํŒŒ์ด์ฌ]
์œจ๋ฌด;
์œจ๋ฌด;
  • ์œจ๋ฌด;
    ๐ŸฅŠ
    ์œจ๋ฌด;
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (65)
      • ๊ฐœ๋ฐœ (30)
        • ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค (13)
        • ์šด์˜์ฒด์ œ (12)
      • ๊ฐœ๋ฐœ์„œ์  (2)
        • ์ž๋ฐ”-์Šคํ”„๋ง ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (2)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ (28)
      • ๊ฒŒ์ž„๊ฐœ๋ฐœ (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊ฐœ๋ฐœ
    ์ž๋ฐ”
    ๋ฐฑ์ค€
    ๋กœ๊ทธ
    ํŒŒ์ด์ฌ
    2048(Hard)
    ์ฝ”๋”ฉ
    ์ธ๋””๊ฒŒ์ž„
    BFS
    ๊ฒŒ์ž„๊ฐœ๋ฐœ
    ์…€๋ฃฐ๋Ÿฌ์˜คํ† ๋งˆํƒ€
    ๊ฒŒ์ž„
    ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค
    python
    ๊ฐœ๋ฐœ์—ฐ์Šต
    C++
    dfs
    ์ด๋™์ƒ์„ฑ์ž
    ์ ˆ์ฐจ์ ์ƒ์„ฑ
    ์šฐํ…Œ์ฝ”
    bsp
    ์ด๊ฒƒ์ดC++์ด๋‹ค
    ๋กœ๊ทธ๋ผ์ดํฌ
    2048
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์œจ๋ฌด;
3190 - ๋ฑ€ [์„ฑ๊ณต(๋ฐ˜๋ก€ํžŒํŠธ)|02:14:43]
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”