[백준/파이썬] 10804번

민정·2023년 1월 16일
0

[백준/파이썬]

목록 보기
29/245
post-thumbnail

백준 10804번

문제

https://www.acmicpc.net/problem/10804

코드

card = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

for _ in range(10):
    minNum, maxNum = map(int, input().split())
    cnt = maxNum - minNum 
    if cnt%2 == 0:
        cnt = cnt //2
    else:
        cnt = (cnt //2 ) +1
    for i in range(cnt):
        temp = card[minNum-1+i]
        card[minNum-1+i] = card[maxNum-1-i]
        card[maxNum-1-i] = temp
for j in card:
    print(j,"", end = "")

풀이

20장의 카드 값을 list로 구현합니다.
cnt = (구간 끝 위치) - (구간 시작 위치)

card[x] <-> card[y]의 값이 변경되므로 한번에 두개의 값이 바뀝니다. 즉, 구간에 n개의 카드가 있다면 총 값이 변경되는 횟수는 cnt값에서 나누기 2를 한 값입니다. 홀수인 경우엔 몫+1 을 해주면됩니다.

이후 값을 바꾸고 출력하면 됩니다.

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글