java
[백준] 18258번 : 큐 2 - JAVA [자바]
[백준] 18258번 : 큐 2 - JAVA [자바]
2020.12.13www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 큐에 대한 원리만 알고 있어도 쉽게 풀 수 있는 문제다. 알고리즘 [접근 방법] 단계별로 풀어보기 큐와 덱 카테고리 첫 문제다. 이 번 문제같은 경우 자료구조를 한 번쯤 접해봤거나 큐에 대한 개념이 있다면 쉽게 풀 수 있는 문제다. 잠깐 큐에 대해 설명하자면 큐 자료구조의 경우 '선입선출' 자료구조로 말 그대로 먼저 들어간 요소가 먼저 나오는 방식이다. 쉽게 생각해서 놀이기구를 타..
자바 [JAVA] - 배열을 이용한 Deque (덱) 구현하기
자바 [JAVA] - 배열을 이용한 Deque (덱) 구현하기
2020.12.12자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중 연결리스트 (Doubly LinkedList) 5. 스택 인터페이스 (Stack Interface) 6. 스택 (Stack) 7. 큐 인터페이스 (Queue Interface) 8. 배열 큐 (Array Queue) 9. 연결리스트 큐 (LinkedList Queue) 10. 배열 덱 (Array Deque) - [현재 페이지] 11. 연결리스트 덱 (LinkedList Deque) 12. 힙 (Heap) 13. 우선순위 큐 (..
자바 [JAVA] - 연결리스트를 이용한 Queue (큐) 구현하기
자바 [JAVA] - 연결리스트를 이용한 Queue (큐) 구현하기
2020.12.09자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중 연결리스트 (Doubly LinkedList) 5. 스택 인터페이스 (Stack Interface) 6. 스택 (Stack) 7. 큐 인터페이스 (Queue Interface) 8. 배열 큐 (Array Queue) 9. 연결리스트 큐 (LinkdedList Queue) - [현재 페이지] 10. 배열 덱 (Array Deque) 11. 연결리스트 덱 (LinkedList Deque) 12. 힙 (Heap) 13. 우선순위 큐 ..
자바 [JAVA] - 배열을 이용한 Queue (큐) 구현하기
자바 [JAVA] - 배열을 이용한 Queue (큐) 구현하기
2020.12.07자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중 연결리스트 (Doubly LinkedList) 5. 스택 인터페이스 (Stack Interface) 6. 스택 (Stack) 7. 큐 인터페이스 (Queue Interface) 8. 배열 큐 (Array Queue) - [현재 페이지] 9. 연결리스트 큐 (LinkedList Queue) 10. 배열 덱 (Array Deque) 11. 연결리스트 덱 (LinkedList Deque) 12. 힙 (Heap) 13. 우선순위 큐 (..
[백준] 1874번 : 스택 수열 - JAVA [자바]
[백준] 1874번 : 스택 수열 - JAVA [자바]
2020.12.03www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 스택의 원리만 이해한다면 쉽게 풀 수 있는 문제다. 알고리즘 [접근 방법] 아마 이 문제를 처음 접한다면 무슨 말인가 할 수도 있겠지만, 이해만 한다면 정말 쉬운 문제다. 스택 자료구조는 본문에서도 나와있듯이 LIFO(후입선출) 특성을 갖고있다. 스택에 대한 기본적인 이해는 다음 포스팅을 참고하시길 바란다. 자바 [JAVA]..
자바 [JAVA] - Queue Interface (큐 인터페이스)
자바 [JAVA] - Queue Interface (큐 인터페이스)
2020.12.01자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중 연결리스트 (Doubly LinkedList) 5. 스택 인터페이스 (Stack Interface) 6. 스택 (Stack) 7. 큐 인터페이스 (Queue Interface) - [현재 페이지] 8. 배열 큐 (Array Queue) 9. 연결리스트 큐 (LinkedList Queue) 10. 배열 덱 (Array Deque) 11. 연결리스트 덱 (LinkedList Deque) 12. 힙 (Heap) 13. 우선순위 큐 (..
[백준] 4949번 : 균형잡힌 세상 - JAVA [자바]
[백준] 4949번 : 균형잡힌 세상 - JAVA [자바]
2020.12.01www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 문제 이전 괄호 문제에서 좀 더 업그레이드 된 버전이다. 알고리즘 [접근 방법] 이 문제는 이 전 문제인 9012의 괄호 문제를 정확히 이해하고 있다면 쉽게 풀 수 있을 것이다. 만약 괄호 문제를 풀어보지 않았다면 먼저 아래 포스팅을 먼저 보고 오시길 바란다. [백준] 9012번 : 괄호 - JAVA [자바] www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Par..
자바 [JAVA] - 삽입 정렬 (Insertion Sort)
자바 [JAVA] - 삽입 정렬 (Insertion Sort)
2020.11.30[정렬 알고리즘 모음] 더보기 1. 계수 정렬 (Counting Sort) 2. 선택 정렬 (Selection Sort) 3. 삽입 정렬 (Insertion Sort) - [현재 페이지] 4. 거품 정렬 (Bubble Sort) 5. 셸 정렬 (Shell Sort) 6. 힙 정렬 (Heap Sort) 7. 합병(병합) 정렬 (Merge sort) 8. 퀵 정렬 (Quick Sort) 9. 이진 삽입 정렬 (Binary Insertion Sort) 10. 팀 정렬 (Tim Sort) Insertion Sort [삽입 정렬] 삽입 정렬은 현재 비교하고자 하는 target(타겟)과 그 이전의 원소들과 비교하며 자리를 교환(swap)하는 정렬 방법이다. 말로만 설명하기에는 어려울 수 있으나 그림으로 보면 이해하..
[백준] 9012번 : 괄호 - JAVA [자바]
[백준] 9012번 : 괄호 - JAVA [자바]
2020.11.30www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 스택을 활용하는 대표적인 문제다. 알고리즘 [접근 방법] 알맞은 괄호 수식이 어떤 원리인지는 모두가 이해할 것이다. 여는 괄호 '(' 가 있으면 반드시 이에 대응하는 닫는 괄호 ')' 가 있어야한다는 것이다. 그럼 이를 스택에 어떻게 활용할 수 있을까? 원리는 간단하다. 여는 괄호가 있을 때는 스택에 쌓고 닫는 괄호가 있으면 여는 괄호를 하나 지우면(pop) 된다. 그럼 총 ..
[백준] 10773번 : 제로 - JAVA [자바]
[백준] 10773번 : 제로 - JAVA [자바]
2020.11.27www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 스택에 대해 알면 쉽게 풀 수 있는 문제다. 알고리즘 [접근 방법] 이 문제 또한 쉽게 풀 수 있을 것이다. 문제 지문이 길긴 하지만, 쉽게 이해하자면 0을 입력받으면 최근에 입력받았던 수를 지우면 된다. 또한 0을 입력받을 때 지울 수 있는 수가 보장된다고 했기때문에 예외 또한 고민 할 필요가 없다. 혹여 스택에 대해 잘 알지 못하는 경우 아래 글을 참고하시는 것도 좋을..