04. 리스트 / 과제 추가

2025. 5. 24. 00:54·PYTHON/Assignment

예제37

1부터 10까지의 수를 리스트에 저장하고 출력하기

 

분석

1. 빈 리스트를 준비

2. for문으로 1부터 10까지 뽑기

3. append로 리스트에 추가

4. 리스트 출력

설계

구현

lst = []

for i in range(1,11):
  lst.append(i)

print(lst)

 

예제38

10, 20, 30, ..., 100 저장하고, 거꾸로 출력하기

 

분석

1. 빈 리스트 준비

2. for문으로 1부터 10까지 뽑기

3. 뽑은 값에 10을 곱해서 리스트에 저장

4. 리스트 거꾸로 바꾸기

5. 리스트 출력

설계

구현

lst = []

for i in range(10,0,-1):
  lst.append(i*10)

print(lst)

 

예제39

리스트 요소 거꾸로 뒤집기

 

분석

1. 리스트와 temp를 준비한다.

2. for문으로 0부터 4까지 5번을 반복한다.

3. temp에 바뀔 값을 저장하고, 바뀔 값 자리에 바꿀 값을 넣은 후 바꿀 값 자리에 temp에 저장된 값을 넣는다.

4. 리스트 출력

설계

구현

lst = [1,2,3,4,5,6,7,8,9,10]
temp = 0

for i in range(0,5):
  temp = lst[i]
  lst[i] = lst[9-i]
  lst[9-i] = temp

print(lst)

 

예제40

리스트 a 요소 리스트 b에 거꾸로 저장하기

 

분석

1. a리스트와 b리스트를 준비한다

2. for문으로 0부터 9까지 총 10번 반복해서 i에 대입한다.

3. temp에 a[i] 값을 넣고, a[i] 자리에 b[10-i] 값을 넣은 후 b[10-i] 자리에 temp 값을 넣는다.

4. a와 b를 출력

설계

구현

a = list(range(1,11))
b = list(range(10,0,-1))
temp = 0

for i in range(0,10):
  temp = a[i]
  a[i] = b[9-i]
  b[9-i] = a[i]
  
print(a)
print(b)

 

예제41

리스트 요소 왼쪽←으로 한 칸씩 원형으로 이동하기

 

분석

1. a 리스트와 temp를 준비한다.

2. temp에 a의 첫 인덱스의 값을 저장한다.

3. for문으로 0부터 8까지 총 9번 반복하여 대입한다.

4. a 리스트의 마지막 인덱스에 temp 값을 넣는다.

설계

구현

a = [1,2,3,4,5,6,7,8,9,10]
temp = a[0]

for i in range(0,9):
  a[i]=a[i+1]

a[9] = temp

print(a)

 

예제42

리스트 요소 중 최댓값 구하기

 

분석

1. lst를 준비한다.

2. a의 첫번째 인덱스 값을 temp에 저장함.

3. for문으로 1부터 9까지 반복하여 대입함.

4. 현재보다 i 인덱스 값보다 크면 max에 그 값을 저장한다.

5. max 출력

설계

구현

lst = [91,90,78,35,65,9,97,54,62,90]
max = a[0]

for i in range(1,10):
  if max<lst[i]:
    max=lst[i]

print(max)

 

예제44 (*필수)

10진수를 2진수로 변환하여 리스트에 저장하기 (필수)

 

10진수를 입력받아, 2진수로 출력하는 프로그램을 개발하세요.

 

분석

1. a를 입력받아 저장

2. 빈 리스트를 준비

3. j=2로 저장(2로 계속 나눠줘야 함)

4. while 조건 a를 j인 2로 나눴을 때 몫이 0이 아닐 때만 실행.

4-1. b는 a를 j로 나눌 때의 나머지 값(2진수로 변환된 값)

4-2. a는 a를 j로 나눌 때의 몫(다시 while문으로 반복될 때에는 이 몫을 또 j로 나눠줘야 하기 때문임)

4-3. b를 lst에 추가한다.

5. 리스트에 1을 추가한다.(모든 2진수는 마지막 몫을 1을 2로 나누면서 나머지가 1이 됨)

6. 리스트를 뒤집는다.

설계

구현

a = int(input("10진수 : "))
lst = []

j=2

while a//j != 0:
  b = a%j #2진수 변환된 값(0 또는 1)
  a = a//j
  lst.append(b)
lst.append(1)

lst.reverse()
print(lst)

 

예제 45

배열에 저장된 2진수를 10진수로 변환하기

 

분석

1. lst를 준비

2. sum = 0, m = len(lst)-1, n = len(lst)-2

3. for문으로 lst 요소를 하나씩 대입

4. 중첩 for문으로 m과 n사이의 요소를 -1폭으로 대입

5. a = i * (2**j) 로 각 자릿수의 10진수 변환값을 구함

6. sum에 a를 누적해서 더 한다.

7. m,n은 -1씩 차감하여 m과 n사이의 차이인 한 자릿수 적은 수를 대입하게 만든다.

설계

구현

lst = [1,1,0,0,1]
sum = 0
m = len(lst)-1
n = len(lst)-2

for i in lst:
  for j in range(m,n,-1):
    a = i*(2**j)
    sum = sum + a
    m = m-1
    n = n-1

print(sum)

 

예제46

선형 탐색 알고리즘

 

임의의 숫자를 10개를 요소로 가지는 리스트를 만들고, 키 값을 입력했을 때 인덱스를 찾아 출력하는 선형 탐색 알고리즘을 구현하라.

 

분석

1. lst와 입력받을 변수 a를 준비한다.

2. for문으로 0부터 lst의 길이 -1 만큼 대입한다.

3. lst인덱스 값과 입력받은 a와 비교해 같다면 탐색성공을 출력 후 for문으로 빠져나가고

4. 아닌 경우에는 반복을 하다가 마지막 인덱스에 도달했을 때 인덱스 값과 a를 비교하여 같지 않을 때에는 탐색실패를 출력한다.

설계

구현

lst = [26,27,39,63,57,75,11,76,80,18]
a = int(input("찾을 값 : "))

for i in range(0,len(lst)):
  if lst[i] == a :
    print(i," 에서 탐색 성공")
    break
  else :
    if i == len(lst)-1:
      if lst[i] != a :
        print("탐색실패")

 

과제 28

20부터 1까지 수를 차례로 리스트에 저장하고 출력하는 순서도와 파이썬 프로그램을 작성하여라.

 

분석

1. lst를 빈 리스트로 준비

2. for문으로 20부터 1까지 -1폭으로 대입하여 lst에 추가한다

3. lst 출력

설계

구현

lst = []

for i in range(20,0,-1):
  lst.append(i)

print(lst)

 

과제 29

리스트 요소를 오른쪽으로 한 칸씩 원형으로 이동하는 순서도와 파이썬 프로그램을 작성하여라.

 

분석

1. 맨 마지막 인덱스 값을 뺀다.

2. 한 칸씩 민다.

3. 빼놨던 인덱스 값을 맨 앞으로 이동한다.

설계

구현

lst = [1,2,3,4,5,6,7,8,9,10]
temp = 0
i = 9

temp = lst[9]

while i>0:
  lst[i] = lst[i-1]
  i = i-1
  
lst[0] = temp
print(lst)

 

과제 30

임의의 10개의 수를 저장하고 있는 리스트에서 최솟값을 구하는 순서도와 파이썬 프로그램을 작성하여라.

 

분석

1. 비교해야 할 첫 대상을 min에 저장

2. for문으로 1번 인덱스부터 9번 반복

3. min보다 작으면 min에 그 값을 저장

4. min 출력

설계

구현

import random
lst = []
for i in range(10):
  lst.append(random.randint(1,100))
print(lst)

min = lst[0]

for i in range(1,10):
  if min > lst[i]:
    min = lst[i]

print("최솟값 : ", min)

 

과제 31

입력 받은 10진수를 8진수로 변환하여 출력하는 순서도와 파이썬 프로그램을 작성하여라.

 

분석

1. a로 입력받아 저장한다.

2. 빈 리스트를 준비

3. while a//8 != 0 일 때만 반복한다. a%8 나머지를 lst에 추가하고, a는 a//8 몫으로 저장한다.

4. lst에 마지막 a%8을 추가한다.

5. for문으로 len(lst)-1부터 0까지 -1 폭으로 대입한다.

6. lst[i] 를 각각 출력

설계

구현

a = int(input("10진수 : "))
lst = []

while a//8 != 0:
  lst.append(a%8)
  a = a//8
lst.append(a%8)
print(lst)

for i in range(len(lst)-1,-1,-1):
  print(lst[i],end=" ")

 

과제 32

리스트에 저장된 8진수를 10진수로 변환하는 순서도와 파이썬 프로그램을 작성하여라.

예) 8진수 56743 을 리스트  [5,6,7,4,3] 와 같이 입력하여 /  10진수로 변환

 

분석

1. lst 준비, a는 0으로 저장

2. for 문으로 0부터 4까지 1증가폭으로 대입한다

3. a 에 lst[i] * 8 ** (4-i)를 누적하여 더 함

4. a를 출력

설계

구현

lst = [5,6,7,4,3]
a = 0

for i in range(0,5):
  a = a + lst[i]*(8**(4-i))
  print(a)
print(a)

'PYTHON > Assignment' 카테고리의 다른 글

06. 간단한 프로그램 추가  (1) 2025.05.28
06. 간단한 프로그램  (1) 2025.05.27
04. 리스트 / 과제  (2) 2025.05.22
03. 반복구조 추가  (0) 2025.05.21
03. 반복구조  (0) 2025.05.20
'PYTHON/Assignment' 카테고리의 다른 글
  • 06. 간단한 프로그램 추가
  • 06. 간단한 프로그램
  • 04. 리스트 / 과제
  • 03. 반복구조 추가
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
04. 리스트 / 과제 추가
상단으로

티스토리툴바