예제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 |