본문 바로가기
Python/코딩테스트

배열 - 기본 개념(리스트 slicing/append/pop/len)

by Nanki 2025. 3. 4.

* 한 줄에 값들이 1 2 3 4 있는경우, 이를 arr = input().split() 으로 배열형태로 만들 수 있다.
> 이를 for문으로 순회하며 arr 자릿수를 하나씩 sum_val에 더하는 형식으로 리스트 값들을 다 더할 수 있다.
* arr = list(map(int, input().split())) 하면 input으로 가져온 배열을 리스트화할 수 이다.
* n, m = tuple(map(int, input().split())) 하면 n, m에 각 숫자를 나눠 할당할 수 있다
 > 또는 map(int, input().split())

* list에 있는 원소를 순차적으로 탐색하는 코드는 다음과 같은 내이밍의 개형작성이된다.

arr = [1, 2]
for elem in arr:
    print(elem)




* 리스트 내 숫자를 뒤집는 방법
1) 뒤집을 숫자의 갯수를 알고 있을 때 range 끝에 -1로 처리한다.:

arr = list(map(int, input().split()))
for i in range(9, -1, -1):
    print(arr[i], end=" ")



2) 리스트의 slicing 기능 이용
* arr[start:end:step]

arr[:3]  # 처음부터 3번째 index 전까지
arr[2:]  # 2번째 index부터 끝까지
arr[3:0:-1] #특정구간의 원소들을 뒤집힌 형태의 리스트
arr[::-1] # 전체 원소 뒤집기


* 전체 원소 뒤집을때 arr의 모습

arr = list(map(int, input().split()))
reversed_arr = arr[::-1]

for elem in reversed_arr:
    print(elem, end=" ")



* append() 함수를 이용하면 리스트의 맨 끝에 원소를 추가할 수 있다.

arr.append(9)


*pop() 함수를 이용하면 리스트의 맨 뒤에 있는 원소를 지울 수 있다.

arr.pop(9)


이를 응용하면 주어진 리스트에서 짝수인 숫자들만으로 이루어진 리스트를 구하는 코드 작성이 가능하다.

given_arr = [1, 3, 2, 5, 4, 6, 8, 1, 10]
# 짝수만 추출합니다.
even_arr = []
for elem in given_arr:
    if elem % 2 == 0:
        even_arr.append(elem)

# 짝수로만 이루어진 리스트
print(even_arr)


>> [2, 4, 6, 8, 10]

* len()함수를 이용하여 리스트 안의 몇 개의 숫자가 모르는 경우 리스트의 길이를 구할 수 있다.

len([1,3,5])


>> 3
* 따라서 len 함수를 이용해 arr의 원소로 모든 원소 합을 구할 수 있다.

arr = [1, 2, 2, 5]

n = len(arr)

sum_val = 0
for i in range(n):
    sum_val += arr[i]

print(sum_val)


>> 10

* len함수 이용하지 않고 원소를 바로 꺼내는 식으로도 해결이 가능하다.

arr = [1, 2, 2, 5]

sum_val = 0
for elem in arr:
    sum_val += elem

print(sum_val)


* 2번째 숫자부터 끝까지 합을 위해서 range를 꼭 사용하지 않아도된다. arr[1:]의 slicing을 활용할 수 있다.

문제 출처 : 코드트리

https://www.codetree.ai/trail-info

반응형