* 한 줄에 값들이 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
'Python > 코딩테스트' 카테고리의 다른 글
배열 - 학점계산기 (0) | 2025.03.04 |
---|---|
배열 - 특정 수 도달하기 (0) | 2025.03.04 |
다중반복문 - 소수 구하기(bloon 변수활용) (0) | 2025.03.04 |
다중반복문 - 완전 수 (0) | 2025.03.04 |
다중반복문 - M번에 걸친 3N + 1 수열에서 N이 1이되는데 걸리는 횟수 (0) | 2025.03.04 |