[문제 설명]
1. 두 변수의 값을 교환
2. a=list(range(21)) #[1, 2, 3, ...20]
*두 변수의 값을 교환
import sys
sys.stdin=open("input.txt", "rt")
a, b=map(int, input().split())
print('a:%d b:%d' %(a, b))
a, b=b, a
print('a:%d b:%d' %(a, b))
pop()
a=list(range(10))
print(a)
a.pop()
print(a)
a.pop(0)
print(a)
a.pop(3)
print(a)
*본 문제는 인프런 김태원 강사님의 파이썬 알고리즘 문제풀이 강의에 기반합니다.
[문제 점수계산 ]
1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한 줄로 놓여있다.
각 카드의 위치는 카드 위에 적힌 숫자와 같이 1부터 20까지로 나타낸다.
이제 여러분은 다음과 같은 규칙으로 카드의 위치를 바꾼다: 구간 [a,b] (단, 1<=a<=b<=20)가 주어지면 위치 a부터 위치 b까지의 카드를 현재의 역순으로 놓는다.
예를 들어, 현재 카드가 놓인 순서가 오름차순으로 정렬되어 있고 구간이 [5:10]으로 주어진다면, 위치 5부터 위치 10까지의 카드를 역순으로하여 10,9,8,7,6,5로 놓는다.
이 상태에서 구간 [9,13]이 다시 주어진다면 위치 9부터 13까지의 카드 6,5,11,12,13을 역순으로 하여 13, 12, 11, 5, 6으로 놓는다.
5 10
9 13
1 2
3 4
5 6
1 2
3 4
5 6
1 20
1 20
-출력예제1
1 2 3 4 10 9 8 7 13 12 11 5 6 14 15 16 17 18 19 20
풀이
인덱스를 바꾸는 방법
for i in range((e-s+1)//2):
a[s+i], a[e-i]=a[e-i], a[s+i]
import sys
sys.stdin=open("input.txt", "rt")
a=list(range(21))
# for_ 변수없이 반복하는 법
for _ in range(10):
s, e=map(int, input().split())
for i in range((e-s+1)//2):
a[s+i], a[e-i]=a[e-i], a[s+i]
print(a)
#a.pop(인덱스번호)
a.pop(0)
for x in a:
print(x, end=' ')
'알고리즘? > 기본3 탐색&시뮬레이션(string, 1차원 2차원 리스트 탐색)' 카테고리의 다른 글
6. 격자판 최대합 (1) | 2023.05.10 |
---|---|
5. 수들의 합 (0) | 2023.05.09 |
4. 두 리스트 합치기 (0) | 2023.05.09 |
2. 숫자만 추출 (isdecimal, isdigit) , 숫자화 시키는 방법 (0) | 2023.05.08 |
1. 회문 문자열 검사 (문자열 뒤집기) (0) | 2023.05.08 |