4/8 파이썬 리스트와 배열

JK·2023년 4월 11일
0

list 자료형 특징
1. 리스트 안에 리스트 가능(2차 배열, 3차 배열 등...) 2. 리스트 안에 여러 자료형 가능(None도 들어감)
주로 배열과 배열을 이용한 자료구조를 list를 통해 구현한다. 그래서 이를 이용하기 전에 알아야할 몇가지 중요한 특징들이 있습니다.

lst = [1, 2, 3, 4]
lst = list(range(1,5))
lst[0] == lst[-4] # True
list index 는 0과 -len(lst)가 같다.

1차원 배열
배열 만들기

lst = [0, 1, 2, 3] or
lst = [0]*2 👍lst = [0 for col in range(2)] 🔆두 개의 결과는 [0, 0]으로 같지만, 구조적으로 다르다. 그 특징은 2차원 배열에서 두드러지게 나타냅니다.

반복문 사용

for i in lst:
print(i)
enumerate() 사용 (index와 value모두 출력할 때,)
2차원 배열
row: 행
col: 열

list와 tuple로 구현할 수있다. 단 tuple은 값을 변경할 수 없기 때문에 이를 고려해서 사용해야합니다.

배열 만들기

lst2_1 = [[0 for col in range(4)] for row in range(4)]
lst2_2 = [[0]col]row
lst2_3 = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
]
입력

꼭 정사각이나 직사각형 배열이 아닌 jagged list역시 가능합니다.

row, col = map(int, input().split())
lst = [0 for _ in range(row)] # [0] * row
for i in range(row):
lst[i] = list(map(int, input().split()))
row, col = map(int, input().split())
lst = [list(map(int, input().split())) for _ in range(row)]
출력
반복문을 이용하는게 일반적이나 이외에도 여러방법이 있습니다.

for x, y in array:
  print(x, y)

배열을 이용한 알고리즘 문제입니다.

문제 링크

평균은 넘겠지 - 4344

성능 요약
메모리: 31256 KB, 시간: 48 ms

분류
수학, 사칙연산

문제 설명
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

c = int(input())

for _ in range(c):
    person = list(map(int, input().split()))
    result = sum(person[1:])
    average = result/person[0]
    count = 0
    for i in range(1, person[0]+1):
        if person[i] > average:
            count += 1
    a=round(count/person[0]*100, 3)
    print("{:.3f}%".format(a))
profile
^^

0개의 댓글