자료구조

자료구조 & 알고리즘

[JAVA/자료구조] DEQUE 데크 (양방향 큐)

Deque Queue와 Stack의 성질을 둘다 가지고 있다. Stack : push / pop / peek - 제일 늦게 들어간 것이 제일 먼저 나온다. Queue : offer / poll / peek - 제일 먼저 들어간 것이 제일 먼저 나온다. Deque : offerFirst, offerLast 등 : 양방향 Deque의 특징 Deque는 흔히 Stack과 Queue의 특징을 둘 다 갖고 있다고 한다. Queue는 선입선출의 구조를 가지고있다. Deque에서 offerLast로 값을 넣고, pollFirst로 값을 꺼내면 뒤(왼쪽)로 값을 넣고, 앞(오른쪽)에서 꺼내는 Queue와 같다. 또한, offerFirst로 값을 넣고, pollLast로 값을 꺼내면 위와 반대로 앞으로 값을 넣고, 뒤에..

[ 기타 ]/코딩테스트

[백준/JAVA] 11866번 : 요세푸스문제 0 / Queue 자료구조

문제 풀러 가기 : https://www.acmicpc.net/problem/11866 이 문제는 Queue 자료구조를 이용하면 매우 간단하다. K회 반복하는 for문을 돌며 queue에서 값을 꺼내고, 다시 넣기를 반복하다가, K번째 반복에서는 다시 넣지 않고 출력하기를 반복하면 된다. 이 반복을 queue.size() == 1이 될때 까지 반복하고, 마지막 남은 원소를 출력하고 마무리 한다. Code import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); StringBui..

자료구조 & 알고리즘

[JAVA/자료구조] Queue 큐

Interface Queue 공식 문서 https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html Queue 선형 자료구조 First In First Out : 가장 먼저 입력된 자료를 가장 먼저 꺼낼 수 있음 맨 앞(front)에서 자료를 꺼내고, 맨 뒤(rear)에 자료를 추가함 몰랐던 영어지만, queue는 "차례를 기다리는 사람이나 승용자의 열"이라는 뜻이다. "대기줄"이라고 생각해도 될 것 같다. 먼저온 순서대로 들어가고, 먼저 온 순서대로 나간다. 변수 선언 Queue queue = new LinkedList(); 아래와 같이 new Queue로 직접 생성할 수도 있지만, Queue는 인터페이스 이기 때문에 해당 인터페이스의 메서드들을 모두..

자료구조 & 알고리즘

[JAVA/자료구조] Stack 스택

Stack 선형 자료구조 Last In First Out : 가장 나중에 입력된 자료를 가장 먼저 꺼낼 수 있음 맨 마지막 위치(top)에서만 자료를 추가, 삭제, 꺼내올 수 있음 책을 책상 위에 쌓으면 위에서 만 꺼낼 수 있다. stack을 그대로 번역하면 "쌓다." 이기 때문에 말 그대로 아래서부터 데이터를 쌓고, 최근에 쌓은 데이터 즉, 맨 위의 데이터만 꺼낼 수 있다. 스택 생성 Stack stack = new Stack(); 데이터 처리 push(Object obj) : 데이터 추가 데이터를 맨 뒤에 추가한다. //값 추가 stack.push(1);//[1] stack.push(2);//[1,2] stack.push(3);//[1,2,3] pop() : 데이터 조회, 삭제 (꺼내기) 맨 뒤의 데..

[ 기타 ]/코딩테스트

[백준/JAVA] 1966번 : 프린터 큐

문제 Queue 자료구조를 이용해서 요구사항을 구현만 하면 되는 문제이다. 유의할 점은 중요도가 같은 경우가 있을 수 있기 때문에, 각각 문서의 번호와 값을 함께 저장해주어야 한다. 풀이 우선 Queue에 각 테스트케이스의 두 번째 줄에 있는 문서 정보를 입력받는다. 문서 정보는 2개의 인덱스를 가진 int배열로 0번 인덱스에는 문서 번호를, 1번 인덱스에는 중요도 값을 넣을 것이다. 이 문서정보를 순서대로 Queue에 넣어준다. Queue queue = new LinkedList(); for(int i=0;i queue.peek() 꺼낸 값과 queue에 남아있는 모든 값을 비교하여 꺼낸 값보다 큰 값이 하나라도 있는지 확인한다. 1. 꺼낸 값보다 큰 값이 있는경우 값을 꺼내서 다시 queue에 넣어준..

Java

[Java] String 클래스, 관련 메소드

1. String형 변수 선언 String str1 = new String("hello");//힙 메모리에 인스턴스로 생성됨 String str2 = "hello";//상수 풀(constant pool)에 있는 주소를 참조 힙 메모리에 생성되는 str1은 생성 될때마다 다른 주소값을 가진다. 상수풀의 문자열은 모두 같은 주소값을 가진다. // 힙 메모리의 인스턴스로 생성 String str1 = new String("hello"); String str2 = new String("hello"); System.out.println(str1 == str2);//false System.out.println(str1.equals(str2));//true //상수 풀의 주소를 참조 String str3 = "abc..

자료구조 & 알고리즘

[JAVA/자료구조] 컬렉션(Collection) 프레임워크

컬렉션 프레임워크 JDK에서 자료구조를 구현해놓은 라이브러리 java.util 패키지에 구현되어 있음 개발 시간을 절약하기 위해 list, set, map 등 여러가지 알고리즘을 사용할 수 있음 java doc 링크 : https://docs.oracle.com/javase/8/docs/api/ 1. List 인터페이스 객체를 순서에 따라 저장, 관리 중복 허용 ArrayList, LinkedList, Vector, Queue 등 https://docs.oracle.com/javase/8/docs/api/ 2023.02.06 - [JAVA공부/자료구조] - [JAVA/자료구조] List 2. Set 인터페이스 객체를 순서와 관계없이 저장, 관리 아이디, 사번, 주민번호 등 유일한 값을 관리하는데 유용 중..

HSRyuuu
'자료구조' 태그의 글 목록 (2 Page)