-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
prac 120 #7
Comments
Practice 1202 #2 재고 준비하기당신은 슈퍼마켓을 운영하고 있습니다. 지금은 내일의 매장 오픈을 준비하기 위해 발주(=물건을 주문)를 할 시간입니다. 발주를 하는 방법은 다음과 같습니다.
당신은 위와 같은 방법으로 재고를 구축한 뒤 오늘의 장사를 시작합니다. (편의상 어제 팔고 남은 재고는 없다고 가정합니다. ) 오늘의 주문 목록이 들어올 때, (1) 주문이 모두 끝나고 남은 재고가 어떻게 되는지, 그리고 (2) 재고가 없어 팔지 못한 항목은 없는지를 계산하세요. Input
Explanation 위의 입력을 해석하면 다음과 같습니다.
Output 첫 줄에는 남은 재고를, 두 번째 줄에는 재고가 없어 팔지 못한 개수를 각각 한 줄에 출력합니다.
|
Practice 1202 #1 요세푸스 문제(Josephuse Problem)
이 문제에서는 유명한 요세푸스 문제를 풀어보겠습니다. n명의 사람들이 동그랗게 둘러 앉아 있습니다. 각 사람에게는 1, 2, 3, ..., n의 번호가 부여되어 있습니다. 또한 n보다 작은 자연수 k가 주어집니다. 게임이 시작하면 1번 사람이 바통을 들고 있다가 k번째 옆 사람에게 넘겨줍니다. 바통을 받은 사람은 게임에서 빠지고, 그 옆 사람이 바통을 이어받은 뒤 또 다시 k번째 옆 사람에게 넘겨줍니다. 이런 식으로 마지막 1명이 남을 때까지 계속됩니다.
예를 들어, n=5이고 k=3이라면 다음과 같이 진행됩니다. (굵은 글씨는 바통을 가지고 있다는 뜻입니다)
따라서, n=5이고 k=3일때 마지막으로 남는 사람은 1입니다.
Queue (혹은 Deque)를 사용하여 요세푸스 게임을 시뮬레이션하는 프로그램을 작성하세요. 주어진 n과 k에 대해 가장 마지막으로 남는 사람의 번호를 출력하면 됩니다. list를 사용해서
.pop(0)
과 같이 시간이 오래 걸리는 메소드를 사용하면 시간 초과가 될 수 있습니다.Input
1 이상의 자연수 n과 k가 띄어쓰기를 기준으로 구분되어 주어집니다. k는 항상 n보다 작습니다.
Output
The text was updated successfully, but these errors were encountered: