3/21学習問題
7711 ワード
最初の問題
https://www.acmicpc.net/problem/1021
->キューの回転
テストケースについて
今日は誕生日なので気持ちがいいのですが、お祝いの電話がたくさんかかってきたので、ちょっと集中できませんでした.ふふ、明日はもっと頑張ろう!
**ポップを使うともっと時間がかかります!delで解くと成功した.
https://www.acmicpc.net/problem/1021
->キューの回転
テストケースについて
1番解題コード
import sys
# 큐의 크기, 뽑아내려는 수의 개수
n, m = list(map(int, sys.stdin.readline().split()))
# 큐
que = [i for i in range(1, n + 1)]
# 뽑아내려는 수
pickNums = list(map(int, sys.stdin.readline().split()))
#연산 횟수
cnt = 0
# print(queue)
# 연산1 : 처음 오는 수를 뽑을 수 있다.
while pickNums:
# 연산 조건 : 뽑으려는 수 큐의 앞쪽에 가깝나 뒤에 가깝나를 기준으로 한다.
# 연산2 : 앞쪽에 가까우면 왼쪽으로 한 칸 이동
if que.index(pickNums[0]) < len(que) - que.index(pickNums[0]):
while True:
# 만약 뽑아야 하는 수가 앞에 있으면 뽑음
if que[0] == pickNums[0]:
del que[0] # 큐에서 제거
del pickNums[0] # 뽑아야 하는 수도 제거
break
# 연산2 수행
else:
que.append(que[0])
del que[0]
cnt +=1
# 연산3 : 뒤쪽에 가까우면 오른쪽으로 한 칸 이동
else:
while True:
# 만약 뽑아야 하는 수가 앞에 있으면 뽑음
if que[0] == pickNums[0]:
del que[0] # 큐에서 제거
del pickNums[0] # 뽑아야 하는 수도 제거
break
# 연산2 수행
else:
que.insert(0, que[-1])
del que[-1]
cnt +=1
print(cnt)
=======================================================今日は誕生日なので気持ちがいいのですが、お祝いの電話がたくさんかかってきたので、ちょっと集中できませんでした.ふふ、明日はもっと頑張ろう!
**ポップを使うともっと時間がかかります!delで解くと成功した.
Reference
この問題について(3/21学習問題), 我々は、より多くの情報をここで見つけました https://velog.io/@hey_junie/321-스터디-문제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol