리스트의 예시 풀이

리스트의 예제

예제37

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

i가 1부터 시작해 1씩 증가하며 10까지 반복하며 i 값을 리스트 a[i-1]에 저장한다.

결국 a[0]에는 1, a[1]에는 2, ..., a[9]에는 10이 저장된다.

list=[]
for i in range(1,11):
    list.append(i)
print(list)

출력 → [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

 

 

예제38

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

i가 1부터 1씩 증가하며 10이 될 때까지 반복하며 i*10을 a[i-1]에 저장한다.

그리고 i가 9부터 1씩 감소하며 0이 될 때까지 반복하며 a[i] 값을 출력한다.

a=[0]*10
for i in range(1,11):
  a[i-1]=i*10
for i in range(9,-1,-1):
  print(a[i],end=" ")

출력 → 100 90 80 70 60 50 40 30 20 10

 

 

 

예제39

리스트 요소 거꾸로 뒤집기

i가 0부터 1씩 증가하며 4가 될 때까지 반복하며 a[i]와 a[9-i]를 교환한다.

a=[1,2,3,4,5,6,7,8,9,10]
for i in range(0,5):
  temp=a[i]
  a[i] = a[9-i]
  a[9-i]=temp
print(a)

출력 → [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

예제40

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

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

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

출력 → [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

예제41

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

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)

출력 → [2, 3, 4, 5, 6, 7, 8, 9, 10, 1]

 

 

 

예제42

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

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

m=a[0]
for i in range(1,10):
  if a[i] > m:
    m=a[i]

print("최대값:",m)

출력 → (랜덤 리스트), 최대값 출력

 

 

 

예제44

10진수를 2진수로 변환

b=[]
n=int(input("10진수를 입력하세요:"))
while n!=0:
  b.append(n%2)
  n=n//2
for i in range(len(b)-1,-1,-1):
  print(b[i],end="")
n = int(input("10진수 입력: "))

result = ""

while n > 0:
    result = str(n % 2) + result
    n = n // 2

print("2진수:", result)

출력 → (입력값에 따른 2진수)

예제45

2진수를 10진수로 변환

b=[1,1,0,0,1]
n=0
for i in range(0,5):
  n=n+b[i]*(2**(4-i))
print(n)

출력 → 25

 

 

 

예제46

선형 탐색 알고리즘

a= [34,26,78,1,3,87,4,7,25,6]
key=int(input("key를 입력하세요 :"))
cnt = 0

while cnt<10 :
  if key == a[cnt]:
    print(cnt,"번째 에서 탐색 성공")
    break
  cnt=cnt+1
if cnt==10:
 print("실패")

출력 → (입력한 key 값에 따라 탐색 성공 또는 실패)

 

 

 

 

예제47

이진 탐색 알고리즘

a = [11, 18, 26, 27, 39, 57, 63, 75, 76, 80]
key=int(input("key를 입력하세요 :"))
low=0
high=9
while low<=high:
  mid=(low+high)//2
  if key==a[mid]:
    print(mid,"번째 에서 탐색 성공")
    break
  elif key<a[mid]:
      high=mid-1
  else:
      low=mid+1
if low>high:
  print("실패")

출력 → (입력한 key 값에 따라 탐색 성공 또는 실패)

 

 

예제48

선택 정렬 알고리즘

a = [20, 50, 30, 10, 60, 40]
for i in range(0, 5):
    m = i
    for j in range(i+1, 6):
      if a[j]<a[m]:
        m=j

    temp = a[i]
    a[i] = a[m]
    a[m] = temp
print(a)

출력 → [10, 20, 30, 40, 50, 60]

 

 

 

예제49

버블 정렬 알고리즘

a=[20,50,30,10,60,40]
for i in range(0,5):
  for j in range(0,5-i):
    if a[j]>a[j+1]:

      temp=a[j]
      a[j]=a[j+1]
      a[j+1]=temp
print(a)

출력 → [10, 20, 30, 40, 50, 60]

 

 

 

예제50

병합 정렬 알고리즘

a=[1,3,5,7]
b=[3,4,8,10]
c=[]
i=0
j=0

while i<4 and j<4:
  if a[i]<b[j]:
    c.append(a[i])
    i=i+1
  else:
    c.append(b[j])
    j=j+1
if i==4:
  while j<4:
    c.append(b[j])
    j=j+1
else:
    while i<4:
      c.append(a[i])
      i=i+1
print(c)

출력 → [1, 3, 3, 4, 5, 7, 8, 10]