Data Science/Python

[SWEA] 자료구조 리스트, 튜플 - 연습문제(6273,6275,6277,6286,6288,6289,6290,6295,6297,6305)

에너지_2 2025. 2. 9. 17:06
728x90
반응형

※ 출처: https://swexpertacademy.com/

 

2. 자료구조 – 리스트, 튜플 - 연습문제 1

6273. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 1   D1

⭕️ 한 학생의 국어, 수학 점수를 튜플로 저장하고 이 튜플을 항목으로 갖는 리스트 객체가 있습니다.

이 때 첫 번째 학생은 (90, 80), 두 번째 학생은 (85, 75), 세 번째 학생은 (90, 100)의 점수를 갖습니다.

다음과 같이 결과를 만들기 위한 프로그램을 작성하십시오.

#output
1번 학생의 총점은 170점이고, 평균은 85.0입니다.
2번 학생의 총점은 160점이고, 평균은 80.0입니다.
3번 학생의 총점은 190점이고, 평균은 95.0입니다.
더보기

1. 

stu1 = (90, 80)
stu2 = (85, 75)
stu3 = (90, 100)
stu_list = [stu1,stu2,stu3]

for idx, stu in enumerate(stu_list):
    total = 0
    for score in stu:
        total += score
    print("{0}번 학생의 총점은 {1}점이고, 평균은 {2}입니다.".format(idx+1, total, total/2))

 

2. 내장함수를 사용하여 간략하게

for stu in stu_list:
    print("{0}번 학생의 총점은 {1}점이고, 평균은 {2}입니다.".format(stu_list.index((stu))+1, sum(stu), sum(stu)/2))

2. 자료구조 – 리스트, 튜플 - 연습문제 2

6275. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 2   D1

⭕️ 리스트 내포 기능을 이용해 다음 문장으로부터 모음을 제거하시오.

'Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open.'

#output
Pythn s pwrfl... nd fst; plys wll wth thrs; rns vrywhr; s frndly & sy t lrn; s Opn.
더보기

- '구분자 '.join(리스트) : 매개변수로 들어온 리스트를 '구분자' 를 넣은 문자열로 합쳐서 반환해주는 함수.

text = 'Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open.'
remove_this = ('a','e','i','o','u')

text_list = list(c for c in text if c not in remove_this)
print(''.join(text_list)) #list -> str

2. 자료구조 – 리스트, 튜플 - 연습문제 4

6277. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 4   D1

⭕️ 리스트 내포 기능을 활용해 입력된 정수 값 5개의 평균을 출력하는 프로그램을 작성하십시오.

# input
10
10
20
30
40
# output
입력된 값 [10, 10, 20, 30, 40]의 평균은 22.0입니다.
더보기

- input 사용법

data_list = [int(input()) for i in range(1,6)]

print('입력된 값 {0}의 평균은 {1:.1f}입니다.'.format(data_list, sum(data_list)/5))

2. 자료구조 – 리스트, 튜플 - 연습문제 11

6286. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 11  D1

리스트 내포 가능을 이용해 피보나치 수열 10번째까지 출력하는 프로그램을 작성하십시오.

# output
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
더보기
datas=[1,1]
list( datas.append(datas[i-1] + datas[i]) for i in range(1,9) ) #None

2. 자료구조 – 리스트, 튜플 - 연습문제 12

6288. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 12 D1

⭕️ 리스트 내포 기능을 이용하여 1부터 20사이의 숫자 중 3의 배수가 아니거나

5의 배수가 아닌 숫자들의 제곱 값으로 구성된 리스트 객체를 출력하는 프로그램을 작성하십시오.

# output
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 256, 289, 324, 361, 400]
더보기

- 연산자 사용 시, 중괄호() 꼭 기입

data_list = list( pow(i,2) for i in range(1,21) if (i % 3 !=0) | (i % 5 != 0))

2. 자료구조 – 리스트, 튜플 - 연습문제 12

6289. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 13 D1

⭕️ 사용자가 숫자를 입력하면 숫자의 각 자릿수의 합을 구해서 반환하는 프로그램을 작성하십시오.

예를 들어 123을 입력하면 1 + 2 + 3 = 6의 결과를 반환합니다.

# input
12345
# output
15
더보기
text = str( input())
text_list = list( int(c) for c in text)
print( sum(text_list))

2. 자료구조 – 리스트, 튜플 - 연습문제 14

6290. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 14 D1

❌입력 받은 문자열 리스트를 가나다 순으로 따로 묶으려고 합니다. 다음과 같은 리스트가 주어졌을 때 결과처럼 가나다순(사전순)으로
따로 묶은 리스트가 출력되도록 리스트 내포를 이용한 프로그램을 작성하십시오.

dicBase = (('가','깋'), ('나','닣'), ('다','딯'), ('라','맇'), ('마','밓'), ('바','빟'), ('사','싷'),
           ('아','잏'), ('자','짛'), ('차','칳'), ('카','킿'), ('타','팋'), ('파','핗'), ('하','힣'))
 
inputWord = ['막', '부모님', '비용', '비행기', '원래', '처리', '최초', '꼴', '좀', '들다', '싶다',
             '수출', '계시다', '다', '뒤', '듣다', '함께', '아이', '무척', '보이다', '가지다', '그',
             '자르다', '데리다', '마리', '개', '정도', '옳다', '놀이','뜨겁다']
             
# output
[['계시다', '가지다', '그', '개'], ['놀이'], ['들다', '다', '뒤', '듣다', '데리다'], [], ['막', '무척', '마리'], ['부모님', '비용', '비행기', '보이다'], ['싶다', '수출'], ['원래', '아이', '옳다'], ['좀', '자르다', '정도'], ['처리', '최초'], [], [], [], ['함께']]
더보기

- 한참 이해가 안 갔던 문제... ('가' <= '계시다' <= '깋' ) 어떻게 이게 가능한 거지? 싶었는데,

 이를 숫자로 바꿔 (10 <= 13 <= 19) 이렇게 이해했다. 영어로도 바꿔보니 동일하다.

ret_list = []

for i in dicBase:
    w_list = []
    for j in inputWord:
        if i[0] <= j <= i[1]:
            w_list.append(j)
    ret_list.append(w_list)

print(ret_list)

 

- 이해를 위한 영어버전 추가

dicBase2 = (('a','c'),('d','f'),('g','k'),('l','z'))
inputWord2 = ['apple','book','bike','zero','depth','find','food','enter','elevator','ant','good','happy','joy']

2. 자료구조 – 리스트, 튜플 - 연습문제 18

6295. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 18 D1

음과 같이 2차원 배열 구조를 만들기 위한 행열 정보를 콤마(,)로 구분해 입력하고,

이 리스트 객체의 항목의 값은 행과 열의 인덱스 곱으로 초기화해 출력하는 프로그램을 작성하십시오.

# input
3,5
# output
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]
더보기

- 중첩 compresion

row_col = [int(i) for i in input().split(',')] #행 ,열

data_list = list( [x*y for y in range(row_col[1])]
                       for x in range(row_col[0]))

2. 자료구조 – 리스트, 튜플 - 연습문제 20

6297. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 20 D1

⭕️콤마(,)로 구분해 숫자를 입력하고입력된 숫자 중 홀수를 콤마(,)로 구분해 출력하는

리스트 내포 기능을 이용한 프로그램을 작성하십시오.

# input 
1, 2, 3, 4, 5
# output
1, 3, 5
더보기

- data int형 변환해서 계산

data_list = [ data for data in input().replace(" ","").split(',') if int(data) % 2 != 0 ]
print(', '.join(data_list))

2. 자료구조 – 리스트, 튜플 - 연습문제 27

6305. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 2. 자료구조 -리스트, 튜플 27 D1

⭕️ 리스트의 항목 중 중복이 되는 항목을 제거하는 함수를 정의하고 이 함수를 이용해

[12,24,35,24,88,120,155,88,120,155]에서 중복이 제거된 리스트를 출력하십시오.

# output
[12, 24, 35, 88, 120, 155]
더보기

- def parameter 확인

2025.02.08 - [Data Science/Python] - [SWEA] 함수의 기초 - 연습문제(6319,6320)

list1 = [12,24,35,24,88,120,155,88,120,155]

def remove_dup(param_list):
    rtn_list = []
    list( rtn_list.append(data) for data in param_list if data not in rtn_list)
    return rtn_list

print(remove_dup(list1))
반응형
300x250

 

728x90
반응형