[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ (JAVA)

2025. 2. 6. 09:31ยท๐Ÿ’ช Algorithm
๋ฐ˜์‘ํ˜•

๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/64061

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์š”์•ฝ

N*N `board`์— ์—ฌ๋Ÿฌ ๋ชจ์–‘์˜ ์ธํ˜•(1*1)์ด ์Œ“์—ฌ์žˆ๋Š” ์ƒํƒœ์ด๊ณ , ํฌ๋ ˆ์ธ์€ ๊ฐ ์ค„์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ธํ˜•์„ ์ง‘์–ด ์˜ฌ๋ฆฐ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ง‘์–ด ์˜ฌ๋ฆฐ ์ธํ˜•์„ ํ•œ ์ค„ ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์•„ ์˜ฌ๋ฆด ๋•Œ, ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜•์ด ์—ฐ์†ํ•ด์„œ ์Œ“์ด๋ฉด ์ด ๋‘ ์ธํ˜•์€ ์—†์–ด์ง„๋‹ค.

 

2์ฐจ์› ๋ฐฐ์—ด `board`์™€ ์ธํ˜•์„ ์ง‘๊ธฐ ์œ„ํ•ด ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚จ ์œ„์น˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด `moves`๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ํฌ๋ ˆ์ธ์„ ๋ชจ๋‘ ์ž‘๋™์‹œํ‚จ ํ›„ ์‚ฌ๋ผ์ง„ ์ธํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ

์ œํ•œ

  • `board` ๋ฐฐ์—ด์€ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํฌ๊ธฐ๋Š” "5 x 5" ์ด์ƒ "30 x 30" ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • `board`์˜ ๊ฐ ์นธ์—๋Š” 0 ์ด์ƒ 100 ์ดํ•˜์ธ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค.
    • 0์€ ๋นˆ์นธ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • 1 ~ 100์˜ ๊ฐ ์ˆซ์ž๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ธํ˜•์˜ ๋ชจ์–‘์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฐ™์€ ์ˆซ์ž๋Š” ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • `moves` ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • `moves` ๋ฐฐ์—ด ๊ฐ ์›์†Œ๋“ค์˜ ๊ฐ’์€ 1 ์ด์ƒ์ด๋ฉฐ board ๋ฐฐ์—ด์˜ ๊ฐ€๋กœ ํฌ๊ธฐ ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

ํ’€์ด

๋ฐ”๊ตฌ๋‹ˆ๋Š” ์ธํ˜•์„ ์ง‘์–ด๋„ฃ๊ณ , ์กฐ๊ฑด ๋งŒ์กฑ ์‹œ ์œ„์—์„œ๋ถ€ํ„ฐ ์ธํ˜•์ด ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ํ˜•ํƒœ๋ฅผ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. `moves`์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  2. `board`์—์„œ ํ•ด๋‹น ์œ„์น˜์˜ ๋งจ ์œ„๋ถ€ํ„ฐ ์ธํ˜•์ด ๋‹ด๊ฒจ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    1. ๋งŒ์•ฝ ๊ฐ’์ด 0์ด๋ผ๋ฉด, ๋นˆ์นธ์ด๋ฏ€๋กœ ํ•œ ์นธ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค.
  3. ๋งŒ์•ฝ ์ธํ˜•์ด ์žˆ๋Š” ์œ„์น˜๋งŒํผ ๋‚ด๋ ค์™”์œผ๋ฉด, ์ธํ˜•์„ ๋ฝ‘์•˜๋‹ค๋Š” ์˜๋ฏธ๋กœ ํ•ด๋‹น ์œ„์น˜๋ฅผ ๋นˆ์นธ(0)์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  4. ํ˜„์žฌ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๋งจ ์œ„ ์ธํ˜•๊ณผ ์ƒˆ๋กœ ๋ฝ‘์€ ์ธํ˜•์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด, ๋‘ ์ธํ˜•์€ ๋ชจ๋‘ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
    1. ๋ฐ”๊ตฌ๋‹ˆ์˜ ๋งจ ์œ„ ์ธํ˜•์„ ์ œ์™ธ์‹œํ‚ค๊ณ , ์‚ฌ๋ผ์ง„ ์ธํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ 2 ๊ฐ์†Œ์‹œํ‚จ๋‹ค.
  5. `moves`์— ๋‹ด๊ธด ๋ชจ๋“  ๊ฐ’์— ๋Œ€ํ•ด 2~4 ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์ฃผ์˜ํ•  ์ ์€ `moves`์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์€ ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค! ๋”ฐ๋ผ์„œ -1์„ ํ•ด์ค˜์„œ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ์ธ๋ฑ์‹ฑ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ฝ”๋“œ

import java.util.*;
class Solution {
    public int solution(int[][] board, int[] moves) {
        Stack<Integer> bucket = new Stack<>();
        int cnt=0;
        for(int i=0; i<moves.length; i++){
            for(int j=0; j<board.length; j++){
                int temp = board[j][moves[i]-1];
                if(temp!=0){
                    board[j][moves[i]-1] = 0;
                    if(!bucket.isEmpty() && bucket.peek()==temp){
                        bucket.pop();
                        cnt+=2;
                    } else{
                        bucket.push(temp);
                    }
                    break;
                }
            }
        }
        return cnt;
    }
}

๐Ÿท ์‹œ๊ฐ„ ๋ณต์žก๋„

  • `M`: moves์˜ ๊ธธ์ด
  • `N`: board์˜ ๊ฐ€๋กœ ํฌ๊ธฐ
  • ์ด์ค‘ for๋ฌธ: `O(M*N)`
  • ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„: `O(M*N)`

๐Ÿท ์‹คํ–‰ ์†๋„

Time: 1.29 ms, Memory: 76.3 MB

๋ฐ˜์‘ํ˜•

'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ/๋ฐฑ์ค€] 2573 ๋น™์‚ฐ (JAVA)  (1) 2025.02.09
[BOJ/๋ฐฑ์ค€] 4963. ์„ฌ์˜ ๊ฐœ์ˆ˜ (JAVA)  (1) 2025.02.07
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์‹ ๊ฐ€๊ฒฉ (JAVA)  (2) 2025.02.05
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ (JAVA)  (1) 2025.02.04
'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ/๋ฐฑ์ค€] 2573 ๋น™์‚ฐ (JAVA)
  • [BOJ/๋ฐฑ์ค€] 4963. ์„ฌ์˜ ๊ฐœ์ˆ˜ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์‹ ๊ฐ€๊ฒฉ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ (JAVA)
dev-heyjin
dev-heyjin
  • dev-heyjin
    ๊ฐœ๋ฐœ ๊ธฐ๋ก
    dev-heyjin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (56)
      • ๐ŸŽฏ Programming (8)
      • ๐Ÿ’ช Algorithm (16)
      • โš™๏ธ CS (31)
        • ๋„คํŠธ์›Œํฌ (15)
        • ์šด์˜์ฒด์ œ (15)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํ•ดํ‚น
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    DB
    RDS
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
dev-heyjin
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ (JAVA)
์ƒ๋‹จ์œผ๋กœ

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