๋ฆฌ์šฐ's IT Story
article thumbnail
728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ“Œ ์ž๋ฐ”์˜์ •์„ 2๊ถŒ์˜ ์ปฌ๋ ‰์…˜ํ”„๋ ˆ์ž„์›Œํฌ ํŒŒํŠธ์˜ Queue์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ   ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด  ๋‹ค๋ค„๋ณด์ž. 

Queue : ์„ ํ˜• ๊ตฌ์กฐ 
First In First Out 
๋จผ์ €๋“ค์–ด์˜จ ๊ฐ’์ด ๋จผ์ € ๋‚˜๊ฐ„๋‹ค.
 
	static Queue q = new LinkedList();
	static final int MAX_SIZE = 5;

ํ ๊ฐ์ฒด๋ฅผ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋กœ ์„ ์–ธํ•œ๋‹ค.

ํ์˜ ๊ธธ์ด๋Š” 5

 

๐Ÿ“Œ ์˜ˆ์ œ ์ „์ฒด์ฝ”๋“œ 

package queue;

import java.util.LinkedList;
import java.util.ListIterator;
import java.util.Queue;
import java.util.Scanner;

public class Ex01 {
	static Queue q = new LinkedList();
	static final int MAX_SIZE = 5;

	public static void main(String[] args) {
		System.out.println("help๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋„์›€๋ง์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .");

	while (true) {
		System.out.print(">>");

		try {
			Scanner sc = new Scanner(System.in);
			String input = sc.nextLine().trim();

			if ("".equals(input))
				continue;

			if (input.equalsIgnoreCase("q")) {
				System.exit(0);
			} else if (input.equalsIgnoreCase("help")) {
				System.out.println(" help - ๋„์›€๋ง์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.");
				System.out.println(" q๋˜๋Š” Q - ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.");
				System.out.println("history - ์ตœ๊ทผ์— ์ž…๋ ฅํ–ˆ๋˜ ๋ช…๋ น์–ด๋ฅผ " + MAX_SIZE + "๊ฐœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.");
			} else if (input.equalsIgnoreCase("history")) {
				int i = 0;
				// ์ž…๋ ฅ๋ฐ›์€ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•˜๊ณ  ,
				save(input);

				// linkedList์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค€๋‹ค.
				LinkedList tmp =  (LinkedList) q;
				ListIterator it = tmp.listIterator();

				while (it.hasNext())
					System.out.println(++i + "." + it.next());
			} else {
				save(input);
				System.out.println(input);
			} // if(input.equalsIgnoreCase("q")) {
		} catch (Exception e) {
			System.out.println("์ž…๋ ฅ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.");
		}
	} // end of while
}

	public static void save(String input) {
		// queue์— ์ €์žฅํ•œ๋‹ค.
		if (!"".equals(input))
			q.offer(input);

		// queue์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ๋„˜์œผ๋ฉด ์ œ์ผ ์ฒ˜์Œ์— ์ž…๋ ฅ๋œ ๊ฒƒ์„ ์‚ญ์ œํ•œ๋‹ค.
		if (q.size() > MAX_SIZE)
			q.remove();
	}
} // end of class

 

 

 

โญ ์ฝ”๋“œํ•ด์„

 

while (true) {
    System.out.print(">>");

    try {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine().trim();

        if ("".equals(input))
            continue;

 

1๏ธโƒฃ ์šฐ์„  ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ  ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋‹ด์•„์ค€๋‹ค.

2๏ธโƒฃ ๋งŒ์•ฝ ์ž…๋ ฅ ๋ณ€์ˆ˜ input์ด ๊ณต๋ฐฑ์ด๋ฉด  ์ฒ˜์Œ์œผ๋กœ๋˜๋Œ์•„๊ฐ„๋‹ค.

 

 

if (input.equalsIgnoreCase("q")) {
    System.exit(0);
} else if (input.equalsIgnoreCase("help")) {
    System.out.println(" help - ๋„์›€๋ง์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.");
    System.out.println(" q๋˜๋Š” Q - ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.");
    System.out.println("history - ์ตœ๊ทผ์— ์ž…๋ ฅํ–ˆ๋˜ ๋ช…๋ น์–ด๋ฅผ " + MAX_SIZE + "๊ฐœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.");
} else if (input.equalsIgnoreCase("history")) {
    int i = 0;
    // ์ž…๋ ฅ๋ฐ›์€ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•˜๊ณ  ,
    save(input);

1๏ธโƒฃ ๋งŒ์•ฝ input์ด q์™€ ์ผ์น˜ํ•˜๋ฉด  ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ 

2๏ธโƒฃ help์™€ ์ผ์น˜ํ•˜๋ฉด  ๋„์›€๋ง(๋ฉ”๋‰ด) / history์™€ ์ผ์น˜ํ•˜๋ฉด ์ตœ๊ทผ์ž…๋ ฅ๊นŒ์ง€ ์ €์žฅํ•˜๊ณ   5๊ฐœ ๊นŒ์ง€ ๋ณด์—ฌ์ค€๋‹ค.

 

 

LinkedList tmp = (LinkedList) q;
ListIterator it = tmp.listIterator();

while (it.hasNext())
    System.out.println(++i + "." + it.next());

1๏ธโƒฃ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด์ธ ๋ณ€์ˆ˜ tmp์— q๋ฅผ ์ €์žฅํ•˜๊ณ  ์ž๋ฃŒํ˜•์„ ๋งž์ถฐ์ค€๋‹ค. 

2๏ธโƒฃ ๋ฆฌ์ŠคํŠธ์ˆœํ™˜์ž์— ๋ณ€์ˆ˜ tmp๋ฅผ ์ง€์ •ํ•ด์„œ ์ˆœํ™˜ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค.

3๏ธโƒฃ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ 1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ๊นŒ์ง€ ๋ฆฌ์ŠคํŠธ์— ๋‹ค์Œ๊ฐ’์ด ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๋ฉด์„œ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค€๋‹ค. 

 

 

 

 

 *๏ธโƒฃsaveํ•จ์ˆ˜
1๏ธโƒฃ ๊ณต๋ฐฑ์ด ์•„๋‹Œ๊ฒฝ์šฐ์—๋งŒ input์˜ ์ž…๋ ฅ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  

2๏ธโƒฃ ๋ฆฌ์ŠคํŠธ q์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ MAX_SIZE์˜ ํฌ๊ธฐ์ธ 5๋ณด๋‹ค ํฌ๋ฉด  ์ œ์ผ ์ตœ๊ทผ ์ž…๋ ฅ์„ ์‚ญ์ œํ•œ๋‹ค. 

public static void save(String input) {
    // queue์— ์ €์žฅํ•œ๋‹ค.
    if (!"".equals(input))
        q.offer(input);

    // queue์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ๋„˜์œผ๋ฉด ์ œ์ผ ์ฒ˜์Œ์— ์ž…๋ ฅ๋œ ๊ฒƒ์„ ์‚ญ์ œํ•œ๋‹ค.
    if (q.size() > MAX_SIZE)
        q.remove();
}

 

โญ ์ปดํŒŒ์ผ ํ›„ ์‹คํ–‰๊ฒฐ๊ณผ

 

๐Ÿ“Œ ์ด ์˜ˆ์ œ์—์„œ ์ฃผ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณด์•„์•ผ ํ•  ๊ฒƒ์€ 
์‚ฌ์šฉ์ž๊ฐ€ 5๋ฒˆ์˜ ์ž…๋ ฅ์„ ํ–ˆ๋‹ค๋ฉด  FIFO ๊ตฌ์กฐ์ธ Queue๋Š”   LIFO ์„ ํ˜•์ž๋ฃŒ๊ตฌ์กฐ์ธ Stack๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ 
๋งจ ์ฒ˜์Œ ์ž…๋ ฅํ–ˆ๋˜ ๊ฐ’๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 
#๏ธโƒฃ stack์ด์˜€๋‹ค๋ฉด

history๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์—ˆ์„๋•Œ ์ž…๋ ฅ๊ฐ’ history๊ฐ€ ๋จผ์ € ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค.
๋งจ ๋งˆ์ง€๋ง‰์—๋“ค์–ด๊ฐ„ ์š”์†Œ๋ถ€ํ„ฐ ๋นผ์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณด์—ฌ์ค„ํ…Œ๋‹ˆ๊นŒ. 
history 
e
d
c
b  ๊ฐ€ ๋์„๊ฒƒ์ด๋‹ค. . 
728x90
๋ฐ˜์‘ํ˜•
profile

๋ฆฌ์šฐ's IT Story

@LRWoo

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!