1. ๋ฌธ์ œ

  • Stack ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ž๋ฅผ ๊ฑฐ๊พธ๋กœ ๋งํ•ด๋„ ๋˜‘๊ฐ™์€ ๋ฌธ์ž์—ด์ด ๋‚˜์˜ค๋Š” Palindrome ๋งž์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” solution ์„ ์™„์„ฑํ•˜์„ธ์š”
  • ์˜์‚ฌ(Pseudo) ์ฝ”๋“œ → ์˜์‚ฌ ์ฝ”๋“œ๊ฐ€ ์ž˜ ์ƒ๊ฐ์ด ์•ˆ๋‚˜๋ฉด ์•„๋ž˜์˜ ์ ‘๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ ์˜์‚ฌ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”

2. ๋ฌธ์ œ ๋ถ„์„

 2.1 ๋ชฉํ‘œ : ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜ solution์„ ์ž‘์„ฑํ•œ๋‹ค.

 2.2 ํšŒ๋ฌธ(Palindrome):

   • ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด๋„ ๋™์ผํ•œ ๋ฌธ์ž์—ด์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

   • ์˜ˆ: “level”, “์šฐ์˜์šฐ”, “racecar”, “์—ญ์‚ผ์—ญ” ๋“ฑ.

 2.3 ์Šคํƒ ์‚ฌ์šฉ ์ด์œ :

๋ฌธ์ž์—ด์„ ๋’ค์ง‘๋Š” ๊ณผ์ •์„ ์Šคํƒ์˜ LIFO(Last In First Out) ํŠน์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.

 

import java.util.Stack;

public class StackAssignment2 {
  public static boolean solution(String s) {
     Stack<character> stack = new Stack<>();
     
     //1. ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์Šคํƒ์— ์ถ”๊ฐ€
     for (char c : s.toCharArray()) {
         stack.puch(c);
     }
     
     // 2. ์Šคํƒ์—์„œ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋ฉฐ ์›๋ž˜ ๋ฌธ์ž์—ด๊ณผ ๋น„๊ต
     for (char c : s.toCharArray()) {
        if (stack.pop() != c) {
           // ์Šคํƒ์—์„œ ๊บผ๋‚ธ ๋ฌธ์ž์™€ ์›๋ž˜ ๋ฌธ์ž์—ด์ด ๋‹ค๋ฅด๋ฉด
           return false;
        }
     }
     //3. ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํšŒ๋ฌธ
     return true;
  }
  
  public static void main(String[] args) {
        String tc1 = "level";  // true
        String tc2 = "์šฐ์˜์šฐ";  // true
        String tc3 = "์—ญ์‚ผ์—ญ";  // true
        
         System.out.println(solution(tc1)); // true
        System.out.println(solution(tc2)); // true
        System.out.println(solution(tc3)); // true
  }
}

 

3. ์ฝ”๋“œ ํ’€์ด

 3.1 ์Šคํƒ์— ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ 

  - ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ์Šคํƒ์— ์ถ”๊ฐ€ํ•œ๋‹ค. 

 3.2 ์Šคํƒ์—์„œ ๋ฌธ์ž ๊บผ๋‚ด๊ธฐ :

  - ์Šคํƒ์—์„œ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด ์›๋ž˜ ๋ฌธ์ž์—ด๊ณผ ๋น„๊ตํ•œ๋‹ค.

์Šคํƒ์˜ ํŠน์„ฑ์ƒ, ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋œ ๋ฌธ์ž๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋ฏ€๋กœ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.

  3.3 ๋ฌธ์ž ๋น„๊ต:

   - ์Šคํƒ์—์„œ ๊บผ๋‚ธ ๋ฌธ์ž์™€ ์›๋ž˜ ๋ฌธ์ž์—ด์˜ ํ•ด๋‹น ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•œ๋‹ค. 

ํ•˜๋‚˜๋‹ค๋กœ ๋‹ค๋ฅด๋ฉด ํšŒ๋ฌธ์ด ์•„๋‹ˆ๋ฏ€๋กœ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ๊ฐ™๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

์ฃผ์š” ๋…ผ๋ฆฌ:
- ์Šคํƒ์„ ์ด์šฉํ•œ ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ :
์Šคํƒ์˜ LIFOํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๋Š” ๊ณผ์ •์ด ์ž๋™์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค.
- ๋ฌธ์ž ๋น„๊ต:
์›๋ž˜ ๋ฌธ์ž์—ด์™€ ๋’ค์ง‘ํžŒ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜์—ฌ ํšŒ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•œ๋‹ค. 

 

 

+ Recent posts