본문 바로가기

알고리즘/백준 알고리즘21

[Baekjoon] 백준 알고리즘: 11866 - 요세푸스 문제 0 문제 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 내가 생각했던 풀이과정 1. K번째 사람을 제거하고, 남은 사람들로 이루어진 원을 따라 계속한다는 점은 원하는 요소를 pop할 수 있게 회전 한 후 pop한다고 생각을 하여 deque를 이용하였다. 2. 원하는 요소를 pop하기 위해 -(K-1) 만큼 회전을 한다. -(K-1) 만큼 회전하는 이유는 좌로 회전하기 위함이다 3. 좌로 회전을 하고 맨 처음 요소를 popleft 한 것을 리스트에 넣는다. 리스트에 넣을 때는 안에 넣어야하기 때문에 문자열로 처리해서 넣는다. .. 2021. 5. 23.
[Baekjoon] 백준 알고리즘: 2164 - 카드2 문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 내가 생각했던 풀이과정 1. 맨 앞 요소를 선택해서 버려야하고, 버린 다음의 다시 맨 앞요소를 선택해야하는 구조라서 양방향 큐(deque)를 사용하였다. deque를 사용할 경우에는 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다. deque는 양 끝 element의 append와 pop이 압도적으로 빠르기 때문에 사용하였다. 2. deque의 원소가 1개 남을 .. 2021. 5. 22.
[Baekjoon] 백준 알고리즘: 1049 - 기타줄 문제 https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 내가 생각했던 풀이과정 1. 예제 출력 2로 확인한 결과 꼭 같은 브랜드의 6개묶음과 낱개묶음을 사야하는 것이 아닌 브랜드를 섞어서 구매해도 된다는 것을 알아서, 2. 각 브랜드별로 6개 묶음의 가격과 낱개 가격을 입력받을 때 앞의 입력에는 6개 묶음 배열에, 뒤의 입력에는 낱개 묶음 배열에 추가해준다 3. 필요한 돈의 수를 최소로 하기 때문에 그리디를 생각해서, 6개 묶음 배열에서 가장.. 2021. 5. 20.
[Baekjoon] 백준 알고리즘: 1021 - 회전하는 큐 문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 내가 생각했던 풀이과정 1) 데크를 사용한다. 데크란 양방향 큐가 있는데 바로 데크(deque) 자료구조이다. 데크는 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다. 2) deque.rotate(iteration): iteration 횟수만큼 deque의 맨 뒷 값을 맨 앞으로 이동시킨다. deque.rotate(-iteration): iteration 횟수.. 2021. 5. 18.