자바에서 arr[0]=0 arr[1]=1 arr[2]=2 ... arr[20]=20 같은 배열을 만들 땐
for문을 사용해서 배열에 값을 직접 할당했다.
int[] arr = new int[21]
for (int i = 0; i < 21; i++) {
arr[i] = i;
}
하지만 파이썬에서는 range()를 활용하여 자동으로 값이 들어간 리스트를 만들 수 있다.
a=list(range(21))
range(21)은 0부터 20까지의 정수 시퀀스(0, 1, 2, ..., 20)을 생성한다. 파이썬에서 range(n)은 기본적으로 0부터 n-1까지의 정수를 순서대로 생성하는 함수이다.
여기에 list()를 씌우면 이터레이터에서 값을 하나씩 꺼내 리스트로 변환해준다. 즉 list(range(21))을 실행하면 [0, 1, 2, ..., 20]이 만들어진다.
a=10 b=15라고 가정하고 a, b의 값을 교환하고자 할 때
자바는 변수 값을 직접 교환할 수 없어서 보통 임시 변수(tmp)를 사용해야 했다.
int a = 10, b = 15;
int tmp = a;
a = b;
b = tmp;
하지만 파이썬에서는 임시 변수 없이도 값을 교환할 수 있다!!
a, b=10, 15
a, b=b, a
++) 리스트에서 특정 범위가 주어지고
해당 범위의 값을 역으로 배치할 때
s, e=map(int, input().split()) # s ~ e까지의 리스트 값을 역으로 배치
for i in range(e-s+1)//2:
a[s+i], a[e-i]=a[e-i], a[s+i]
''' 3 ~ 7까지의 리스트 값을 역으로 배치한다고 하면
(7-3+1)//2 = 2 이므로
(3, 7) (4, 6) 교환하면 된다.
2 ~ 7까지의 리스트 값을 역으로 배치한다고 하면
(7-2+1)//2 = 3 이므로
(2, 7) (3, 6) (4, 5) 교환하면 된다.
이상하게 e-s어쩌고 사이즈를 재서 했는데 더 간편한 방법이 있었다......
s+i e-i 기억하자 '''
리스트에서 pop()하면?
pop(), pop(0)은 리스트에서 요소를 제거하는 역할을 한다.
pop()은 기본적으로 리스트의 마지막 요소를 제거하고 반환하며,
pop(0)은 리스트의 첫 번째 요소를 제거하고 반환한다.
arr=[10, 20, 30, 40]
last_element=arr.pop() # 40
first_element=arr.pop(0) # 10
'알고리즘(파이썬)' 카테고리의 다른 글
연속된 부분 수열의 합 (투 포인터 기법 사용) (0) | 2025.02.12 |
---|---|
append()와 +의 차이 (0) | 2025.02.12 |
회문 문자열 (0) | 2025.02.11 |
소수 찾기 & 숫자 뒤집기 (0) | 2025.02.11 |
소수 개수 구하기(에라토스테네스의 체) (0) | 2025.02.11 |