스택(Stack)과 큐(Queue) 스택과 큐는 제약을 갖는 배열이다. 제약하는 데이터 구조를 사용하면 잠재적 버그를 막을 수 있으며 문제를 해결하는 새로운 사고방식을 제공한다. 또한, 제약을 제대로 이해해서 작성한 코드는 다른 개발자에게 익숙하고 명쾌하게 읽힌다. 그 알고리즘이 그러한 제약을 가진 채로 동작함을 알게 된다. 스택(Stack) 스택 연산을 묘사하자면 (Last In, First Out) 후입선출을 뜻한다. 처음 들어간 원소가 마지막에 나온다. 스택은 다음과 같은 세 가지 제약이 있다. 데이터는 스택의 끝에만 삽입 가능 데이터는 스택의 끝에서만 삭제 가능 스택의 마지막 원소만 읽을 수 있음 또 한, 스택의 특징은 스택의 끝을 top 스택의 시작을 bottom 스택의 top에서 원소를 제거하..
python
문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다. 도현이는 앞으로 M번 바구니의 순서를 회전시키려고 만들려고 한다. 도현이는 바구니의 순서를 회전시킬 때, 순서를 회전시킬 범위를 정하고, 그 범위 안에서 기준이 될 바구니를 선택한다. 도현이가 선택한 바구니의 범위가 begin, end이고, 기준이 되는 바구니를 mid라고 했을 때, begin, begin+1, ..., mid-1, mid, mid+1, ..., end-1, end 순서로 되어있는 바구니의 순서를 mid, mid+1, ....
과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개 씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈간을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한곳의 위치를 출력한다. 위 문제를 파이썬 코드로 풀이 하였다. # 2023년 4월 29일 15:43:14 제출 # # # # # rows = 9 // ..
이진 탐색은 정렬된 데이터에서 특정한 값을 찾고자할 때 O(logN)의 성능으로 빠르게 값을 찾을 수 있는 장점이 있다. 2023.04.20 - [Data Structures & Algorithms] - 빅오 big-O 빅오 big-O 빅오 표기법 서로 간의 시간복잡도를 쉽게 소통할 목적으로 자료구조와 알고리즘의 효율성을 간결하게 일관된 언어로 설명하기 위한 수학적 언어이다. 빅오 표기법을 이용해 주어진 알고리즘 chaehun97.tistory.com O(logN)의 설명은 이전의 글에서 간략하게 써둔 것이 있으니 참고해보자.. 부족한 설명으로 이해가 되지 않을 수 있으니.. 다른 포스팅을 보는 것이 효율적일 수도 있다. 나중에 수정할 예정이니 참고만 해보자. 아마도 코드로 구현해보면 어떤 식으로 효율적..