Python 문제풀이
a=[]
for i in range(20):
a.insert(i, i+1)
for i in range(10):
x, y = map(int, input().split())
for j in range(x, y-((y-x)//2)):
a[j-1], a[y-j+x-1] = a[y-j+x-1] , a[j-1]
for i in range(20):
print(a[i])
이 문제는 풀면서 헷갈려서 종이에 끄적거리면서 풀었습니다. 그냥 암산을 잘 못해서 그런 것 같습니다.
배열에 1~20의 수를 집어넣고 하라는대로 5 10 이라고 주어졌다면 배열 입장에서4부터 9를 역순으로 뒤집어 주면 되는 문제입니다. 그래서 4와 9의 숫자를 바꾸고 5와 8의 숫자를 바꾸고 6과 7의 숫자를 바꾸는 식으로 문제를 풀었습니다.
5,6,7 등의 가운데 숫자가 남는 경우에서 6같은 경우는 그대로 있어도 상관없기 때문에 range속 조건 대로 처리하여도 문제가 없습니다.
마지막에는 배열의 요소들을 그냥출력해주면 됩니다.
'코딩문제풀이 > 백준' 카테고리의 다른 글
[백준 9012번] 괄호 Python 풀이 (0) | 2021.07.07 |
---|---|
[백준 11721번] 열 개씩 끊어 출력하기 Python 풀이 (0) | 2021.07.07 |
[백준 10214번] Baseball Python 풀이 (0) | 2021.07.05 |
[백준 4999번] 아! Python 풀이 (0) | 2021.07.04 |
[백준 2846번] 오르막길 Python 풀이 (0) | 2021.07.04 |