https://www.acmicpc.net/problem/1021
해결 방법
> 시뮬레이션이라 조건을 따라가면 풀린다.
> 조건 1,2,3에 해당하는 함수를 만들었다.
> 인덱스를 비교하면서 1,2,3 함수를 적절히 사용하면 풀린다.
코드
size, num = map(int, input().split())
find = list(map(int,input().split()))
source = [i for i in range(1, size + 1)]
def one(_list):
_list = _list[1:]
return _list
def two(_list):
tmp = _list.pop(0)
_list.append(tmp)
return _list
def three(_list):
tmp = _list.pop()
_list.insert(0,tmp)
return _list
count = 0
for i in find:
while i != source[0]:
_index = source.index(i)
list_size = len(source)
if _index > list_size//2:
count += 1
source = three(source)
else:
count += 1
source = two(source)
source = one(source)
print(count)
'알고리즘' 카테고리의 다른 글
선분 교차 알고리즘 (0) | 2020.02.29 |
---|---|
백준_1057_토너먼트(시뮬레이션) (0) | 2020.02.28 |
백준_3190_뱀(시뮬레이션) (0) | 2020.02.26 |
백준_14499_주사위 굴리기(시뮬레이션) (0) | 2020.02.25 |
백준_14503_로봇청소기 (0) | 2020.02.25 |
댓글