[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ (JAVA)

2025. 2. 4. 19:20ยท๐Ÿ’ช Algorithm
๋ฐ˜์‘ํ˜•

๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=java

 

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

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

programmers.co.kr

 

๋ฌธ์ œ ์š”์•ฝ

์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์— ๋Œ€ํ•ด ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉด 1, ์•„๋‹ˆ๋ฉด 0 ๋ฐ˜ํ™˜ํ•˜๊ธฐ

  • ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ: ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด์žˆ๋Š” ์ง์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์ธ๋‹ค. ์ด๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด์ด ๋ชจ๋‘ ์ œ๊ฑฐ๋œ๋‹ค๋ฉด ์„ฑ๊ณต
  • ์˜ˆ์‹œ: `baabaa` → `bbaa` → `aa` → ์„ฑ๊ณต

 

์ œํ•œ

  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด : 1,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ’€์ด

๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 10^6์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(nlogn) ์ดํ•˜์ด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  1. ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ง์„ ์ฐพ๋Š”๋‹ค.
    1. ๊ฒ€์‚ฌํ•œ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„ + ๊ทธ ์ „ ๋ถ€๋ถ„์˜ ๊ฐ’์ด ๋™์ผํ•˜๋ฉด ์ง์ด๋‹ค.
  2. ์ง์„ ์ฐพ์œผ๋ฉด ์ด๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  3. ์ œ๊ฑฐํ•œ ๋’ท๋ถ€๋ถ„๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ฒ€์‚ฌํ•˜์—ฌ 1~2 ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋Š” ‘๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„’, ‘์ œ๊ฑฐ’, ‘empty’์ž…๋‹ˆ๋‹ค.

์ด ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์Šคํƒ์— ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ฝ์ž…ํ•ด ๊ฐ€๋ฉฐ ์ง์„ ์ฐพ์œผ๋ฉด 2๋ฒˆ pop ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ฝ”๋“œ

import java.util.*;
class Solution
{
    public int solution(String s)
    {
        Stack<Character> stack = new Stack<>();
        stack.push(s.charAt(0));
        for(int i=1; i<s.length(); i++){
            char c = s.charAt(i);
            if(!stack.isEmpty() && stack.peek()==c){
                stack.pop();
            } else{
                stack.push(c);
            }
        }
        return stack.isEmpty() ? 1 : 0;
    }
}

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

  • N: ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด
  • for๋ฌธ: O(N)
  • ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„: O(N)
๋ฐ˜์‘ํ˜•

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ (JAVA)  (1) 2025.02.06
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์‹ ๊ฐ€๊ฒฉ (JAVA)  (2) 2025.02.05
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ (JAVA)  (2) 2025.02.04
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)  (2) 2025.02.03
'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์‹ ๊ฐ€๊ฒฉ (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)
์ƒ๋‹จ์œผ๋กœ

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