Algorithm
Python Deque(Double-Ended Queue) + Stack, Queue 간단개념
deque() 는 스택과 큐의 기능을 모두 가진 객체로 출입구를 양쪽에 가지고 있음. 메서드에 따라 스택처럼 써도되고, 큐처럼 써도된다. 여기서 잠깐 스택과 큐에 대해 간단히 알아보자. 1. 스택 구현 : append(), pop() 스택(stack)이란 쌓아 올린다는 것을 의미 '가장 마지막에 삽입된 자료가 가장 먼저 삭제된다'라는 구조적 특징을 가짐(후입선출(LIFO, Last-In-First-Out) 구조) top으로 정한 곳을 통해서만 접근가능(삽입, 삭제 모두) 입력시에는 append() 메서드를 이용하고, 출력시에는 pop()을 이용 2. 큐 구현 : appendleft(), pop(), append(), popleft() Queue의 사전적 의미는 줄을 서서 기다리는 것을 의미 따라서 은행에..
[백준] 1920번 : 수 찾기 - JAVA [자바] 이분 탐색 문제
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 문제 새 카테고리인 이분 탐색의 첫 번째 문제인 수 찾기다. 알고리즘 [접근 방법] 일단, 풀이 방법을 알아보기 전에 이분 탐색(Binary Search)에 대해 알아보자. 이 전 문제까지 우리가 분할 정복을 살펴보았다. 분할 정복 방식의 경우에는 문제가 주어지면 해당 문제를 둘 이상으로 나누면서 나눠진 부분문제에 대해 풀렸다면 해당 부분은 끝내고,..
[백준] 1874번 : 스택 수열 - JAVA [자바]
www.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]..
[백준] 1654번 : 랜선 자르기 - JAVA [자바]
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 이분 탐색의 응용 문제다. 알고리즘 [접근 방법] 일단, 이 번 문제를 풀기 전에 이분 탐색 중 Upper Bound 에 대해 이해하고 있어야 한다. 그러니, 해당 원리를 이해하기 위해 아래 포스팅을 먼저 보시고 오시기를 바란다. https://st-lab.tistory.com/267 [백준] 10816번 : 숫자 카드 2 - JAVA [자바] https://ww..
Arrays.sort ( 사전순서대로 정렬해주는 메소드)
Arrays.sort - 사전순서대로 정렬 Arrays.sort(arr, Comparator.comparing(String::length)) - 각 인덱스의 길이를 기준으로 정렬