백준 10845 (C++) 큐
PS/BOJ 2021. 11. 18. 12:35

기본적인 구현 문제였다. 이런 문제는 c++의 stl인 queue를 사용해도 되지만, 자료구조 학습 기간이 길지 않은 초보자라면 직접 구현해보길 권장한다. front 와 back을 증가시키기만 하는 linear queue를 구현해도 주어진 input이 배열의 범위를 넘어가지 않아서 circular queue가 필요하지 않은 것 같다. circular queue는 modulo를 사용하면 된다. https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmic..

백준 1158 (C++) 요세푸스 문제
PS/BOJ 2021. 9. 29. 15:59

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 이해 이 문제를 이해하기 위해서 종이에 그림을 그려 보라. 단번에 어떤 자료구조가 필요할지 떠오르지 않아도 괜찮다. 앞에서 K번째 원소까지 탐색하고, 원소를 지우고, 탐색하고, 지우고... 를 반복하면 되겠구나! 하고 떠오르면 문제 이해가 끝났다. Queue 이제 큐를 사용해보자 K번째 원소까지 어떻게 셀까? 1. 큐의 맨 앞 원소를 뒤에 붙이고(push), 그 원소를 지운다(pop) 이 과정을 K번동안 반복한다. 그럼 초기에 앞에서 K번째에 있던 원소가 맨 앞으로 왔을 것이다. 2..