본문 바로가기
728x90

프로그래밍28

[자료구조] 큐(Queue) - 코딩기록 큐(Queue) 큐는 이전 포스팅에서 설명했던 스택과 약간 다른 점이 있는 자료구조이다. 이전에 설명했던 스택은 LIFO(후입선출)구조였지만 큐는 FIFO(First - In - First - Out) 선입선출 구조이다. 즉, 먼저 집어 넣은 데이터가 먼저 나오는 것이다. 1번, 2번, 3번 데이터가 차례로 들어오고 이 순서대로 나간다고 생각하면 된다. 맨 오른쪽에 있는 화살표에 해당하는 구간이 삽입연산이 수행되는 곳인 리어(rear)이고 맨 왼쪽에 있는 화살표에 해당하는 구간이 삭제연산이 수행되는 곳인 프론트(front)이다. 큐의 기능 이제 큐STL을 활용해 큐의 기능들을 살펴보겠다. push(x) : 원소 x를 큐의 맨 뒤에 추가 pop() : 큐의 맨 앞 원소 삭제 empty() : 큐가 비어있으.. 2023. 5. 4.
[백준] 10773번 제로(c++) 문제풀이 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 0을 부를 때마다 가장 최근에 재민이가 쓴 수를 지운다는 것은 스택에서 삭제 연산에 해당하는 말이다. 이 말을 통해 자료구조인 스택을 문제에 적용해야 한다는 것을 파악할 수 있다. 만약 0을 말하지 않았다면 수를 받아 적어야 하므로 스택에 삽입 연산을 실행해야 한다. 스택에 저장되어 있는 원소들의 합을 구해야 하므로 스택의 사이즈(원소의 개수)만큼 반복문을 실행시.. 2023. 5. 3.
[자료구조] 스택(Stack) - 코딩기록 자료구조 자료구조에 대해 간단히만 짚고 넘어가겠다. 자료구조의 정의는 컴퓨터과학에서 효율적인 접근과 수정을 가능하게 해주는 자료의 조직, 관리, 저장을 의미한다. 자료구조를 통해 데이터를 효율적으로 저장, 관리할 수 있고 메모리를 절약하거나 시간을 단축할 수 있다. 우리가 흔히 말하는 알고리즘과는 약간의 차이가 있다. 자료구조는 이름처럼 데이터를 저장하기 위한 구조이고 알고리즘은 자료구조에 있는 데이터를 활용해 문제를 해결하는 방법이라고 할 수 있다. 즉, 자료구조를 잘 익혀두면 문제를 더 효율적으로 해결할 수 있을 것이다. 이 포스팅에서 다룰 것은 자료구조에서 선형구조 중 하나인 스택이다. 스택 스택은 '쌓다'라는 뜻을 가지고 있다. 이 말처럼 스택을 이해할 때 탑을 상상하면 편하다. 다음과 같은 탑이.. 2023. 5. 3.
[알고리즘] 에라토스테네스의 체(c++)구현 및 문제풀이 - 코딩기록 에라토스테네스의 체는 소수를 찾는 방법 중 하나로 범위 안에 있는 소수들을 모두 구해야 할 때 유용하게 사용되는 알고리즘이다. 원리 소수는 1과 자기 자신만을 약수로 가지는 수이기 때문에 약수의 개수가 2개이고 합성수는 소수가 아닌 수를 말하기 때문에 약수의 개수가 2개보다 많다. 이 사실을 통해 소수에 어떤 수를(1 제외) 곱하게 되면 그 수는 반드시 합성수가 된다는 것을 알 수 있다. 이것이 에라토스테네스의 체 알고리즘의 핵심 아이디어이다. 코드 일단 우리의 목표는 2부터 100까지에 해당하는 모든 소수를 구하는 것이다. 우리가 처음 만나는 수를 2라고 가정해보자. 그렇다면 소수인 2에 어떤 수를 곱하면 그것은 합성수일 것이다. 즉, 4, 6, 8, ... 50, ..., 100(2에 어떤 수를 곱한.. 2023. 5. 2.
728x90