• 티스토리 홈
  • 프로필사진
    소쩍소쩍이
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
소쩍소쩍이
  • 프로필사진
    소쩍소쩍이
    • 분류 전체보기 (51)
      • 파이썬 (18)
        • 문제 및 예제 (8)
      • PySide6 (15)
        • Signal & Slot (6)
        • Layout (8)
        • Model & View (1)
      • 리눅스 (5)
      • 아두이노 (0)
      • 일지 (11)
  • GitHub
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 리스트 예제 및 문제
      2026년 04월 10일
      • 소쩍소쩍이
      • 작성자
      • 2026.04.10.:46

       

       

      In [ ]:
      # 예제37 - 1~10을 리스트에 저장 후 출력하기
      list_a = []
      
      for  i  in range(1,10+1,1) :
         list_a.append(i)
      
      print(list_a)
       
      [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      In [ ]:
      # 예제38 - 10,20,30 ... ,100 저장하고 거꾸로 출력
      list_b = []
      for i in range(10,100+1,10):
        list_b.append(i)
      for i in range(9,-1,-1):
        print(list_b[i],end=" ")
       
      100 90 80 70 60 50 40 30 20 10
      In [ ]:
      # 예제37 - 리스트 요소 거꾸로 뒤집기
      a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      for i in range(0,5,1):
        temp = a[i]
        a[i] = a[9-i]
        a[9-i] = temp
      
      print(a)
       
      [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
      In [ ]:
      # 예제40 - 리스트 a요소 리스트b에 거꾸로 저장하기
      a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      b=[]
      
      for i in range(0,9+1,1):
        b.append(a[9-i])
      print(b)
       
      [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
      In [ ]:
      # 예제41 - 리스트 요소 왼쪽으로 한칸씩 원형이동
      a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      temp= a[0]
      
      for i in range(0,8+1,1):
        a[i] = a[i+1]
      a[9] = temp
      print(a)
       
      [2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
      In [ ]:
      # 예제42 - 리스트 요소 중 최댓값 구하기
      import random # 랜덤값을 채우기 위해 랜덤모듈 불러오기
      
      a=[]
      for i in range(10): # 랜덤 정수 10개를 가져오기 위한 반복
        a.append(random.randint(1,100))   # 정수 랜덤값을 불러오고 싶을때 ()안에는 시작과 끝을 넣는다
      
      print(a)
      M=a[0]
      for i in range(1,9+1,1):
        if M<a[i] :
          M = a[i]
      print("최댓값 :", M)
       
      [70, 95, 91, 57, 84, 19, 93, 16, 94, 53] 최댓값 : 95
      In [ ]:
      # 예제43 - 에라토스테네스의 체
      a=[]
      for i in range(1,102,1):
        a.append(0)             # 리스트a 에 0 채워 넣기
      print(a)
      for i in range(2,101,1):  # 2는 제외
        if a[i]==0:
          for j in range(i*2,100+1,i):
            a[j]=1              # 리스트에 2의 배수는 1로 채워 넣기
      print(a)
      for i in range(2,100+1,1):
        if a[i]==0:             # 리스트에 0인 곳을 정수 넣기
          print(i,end=" ")
       
      [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, 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, 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, 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, 0] [0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1] 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
      In [ ]:
      # 예제44 - 10진수를 2진수로 전환하여 리스트에 저장하기
      number = int(input("10진수 : "))
      list_c = []
      
      while number != 0 :
        num = number % 2         # 2로 나눈 나머지 -> 현재 자리의 이진수 값
        list_c.append(num)       # 나머지를 리스트에 추가 (뒤에서부터 저장됨)
        number = number // 2     # 몫으로 number 갱신 (다음 계산을 위해)
      print(list_c)              # 역순으로 저장된 2진수 리스트 출력
      print(len(list_c))         # 리스트 길이 (이진수 자릿수)
      # 리스트를 뒤에서부터 출력 -> 올바른 2진수 순서로 출력
      for i in range(len(list_c)-1, -1, -1):
        print(list_c[i], end=" ")
       
      10진수 : 42 [0, 1, 0, 1, 0, 1] 6 1 0 1 0 1 0
      In [ ]:
      # 예제45 - 배열에 저장된 2진수를 10진수로 변환
      
      b = [1,1,0,0,1]   # 2진수 값을 리스트로 저장 (예: 11001)
      n = 0             # 10진수 결과를 저장할 변수 초기화
      # 리스트의 각 자리를 순회
      for i in range(0,5,1):
        # 현재 자리의 값에 2의 거듭제곱을 곱해서 누적
        n = n + b[i] * (2**(4-i))   # (4-i)는 자릿수 계산
      
      print(n)
       
      25
      In [ ]:
      # 예제46 - 선형 탐색 알고리즘
      a = [26, 27, 39, 63, 57, 75, 11, 76, 80, 18]
      number = int(input("키 :"))
      # 리스트의 인덱스를 가리킬 변수 'can' 초기화
      can = 0
      # 리스트의 끝까지 반복하는 루프
      while can < 10:
          # 현재 가리키는 위치의 값과 찾는 값이 같은지 확인
          if number == a[can]:
              # 값을 찾았다면 인덱스 번호를 출력
              print(can, "에서 탐색")
              # 값을 찾았으므로 더 이상 반복할 필요가 없어서 루프 탈출
              break
          # 값을 찾지 못했다면 다음 인덱스로 이동
          can = can + 1
      if can == 10:
          print("탐색 실패")
       
      키 :11 6 에서 탐색
      In [8]:
      # 예제47 - 이진 탐색 알고리즘
      a = [11, 18, 26, 27, 39, 57, 63, 75, 76, 80]
      num = int(input())
      
      # 탐색 범위의 시작(low)과 끝(hig) 인덱스 설정
      low = 0
      hig = 9
      
      # 탐색 범위가 유효한 동안반복
      while low <= hig:
          # 탐색 범위의 정중앙 인덱스를 계산
          mid = (hig + low) // 2
          # 중앙값이 찾는 값과 일치하는 경우
          if num == a[mid]:
              print(mid, "탐색성공")
              break # 값을 찾았으므로 반복문 즉시 종료
          # 찾는 값이 중앙값보다 작은 경우 (왼쪽 절반으로 범위 축소)
          elif num < a[mid]:
              hig = mid - 1 # 끝 지점을 중앙 바로 왼쪽으로 옮김
          # 찾는 값이 중앙값보다 큰 경우 (오른쪽 절반으로 범위 축소)
          else:
              low = mid + 1 # 시작 지점을 중앙 바로 오른쪽으로 옮김
      if low > hig:
          print("탐색실패")
       
      39 4 탐색성공
      In [ ]:
      # 예제48 - 선택 정렬 알고리즘
      a = [20, 50, 30, 10, 60, 40]
      
      # 정렬된 앞부분을 제외하고 리스트의 처음부터 마지막 직전까지 반복
      for i in range(0, 4 + 1, 1):
        # i번째 위치를 일단 최솟값이 있는 위치라고 가정
        m = i
        # i 이후의 요소들 중에서 진짜 최솟값의 위치를 탐색
        # i+1부터 리스트 끝까지 비교
        for j in range(i + 1, 5 + 1, 1):
          # 현재 가정된 최솟값)보다 더 작은 값이 나타나면
          if a[j] < a[m]:
            # 최솟값의 위치 인덱스를 j로 갱신
            m = j
        # 반복종료 시 m에는 i 이후 가장 작은 값의 위치가 저장됨
        # 이제 i번째 값과 찾은 최솟값을 서로 교환
        temp = a[i]      # 원래 위치의 값을 임시 변수에 보관
        a[i] = a[m]      # 최솟값을 원래 위치로 이동
        a[m] = temp      # 임시 보관했던 값을 최솟값이 있던 자리로 이동
      print(a)
       
      [10, 20, 30, 40, 50, 60]
      In [ ]:
      # 예제49 - 버블 정렬 알고리즘
      a = [20, 50, 30, 10, 60, 40]
      
      # 정렬 회차를 결정
      # 한 회차가 끝날 때마다 가장 큰 값이 맨 뒤로 밀려나 고정됨
      for i in range(0, 5):
          # 인접한 두 값을 비교하며 위치를 바꿈
          # 이미 정렬된 뒷부분은 제외하고 비교하기 위해 5-i까지만 반복
          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]
      In [11]:
      # 예제50 - 병합 알고리즘
      a = [1, 3, 5, 7]
      b = [3, 4, 8, 10]
      c = []
      i = 0 # a용 인덱스
      j = 0 # b용 인덱스
      
      # 두 리스트 중 어느 하나라도 끝에 도달할 때까지 반복
      while i < 4 and j < 4:
          # 두 리스트의 현재 요소를 비교하여 작은 값을 결과 리스트 c에 추가
          if a[i] < b[j]:
              c.append(a[i])
              i = i + 1 # 인덱스 이동
          else:
              c.append(b[j])
              j = j + 1
      # 리스트 a의 데이터를 모두 사용했다면
      if i == 4:
          # 남은 리스트 b의 데이터들을 순서대로 모두 결과 리스트 c에 추가
          while j < 4:
              c.append(b[j])
              j = j + 1
      # 리스트 b의 데이터를 모두 사용했다면
      else:
          # 남은 리스트 a의 데이터들을 순서대로 모두 결과 리스트 c에 추가
          while i < 4:
              c.append(a[i])
              i = i + 1
      print(c)
       
      [1, 3, 3, 4, 5, 7, 8, 10]
      In [12]:
      # 과제28 - 20~1까지의 수를 차례로 리스트에 저장하고 출력
      a = []
      for i in range(20,0,-1):
        a.append(i)
      print(a)
       
      [20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
      In [24]:
      # 과제29 - 리스트 요소를 오른쪽으로 한칸씩 원형으로 이동
      a = [1,2,3,4,5,6,7,8,9,10]
      temp = a[9]
      
      for i in range(9,0, -1):
        a[i] = a[i-1]
      a[0] = temp
      print(a)
       
      [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      In [29]:
      # 과제30 - 임의의 10갸의 수를 저장하고 있는 리스트에서 최솟값
      import random
      a = []
      
      for i in range(10):
        a.append(random.randint(1,100))
      b = min(a)
      print(a)
      print("최솟값",b)
       
      [58, 86, 12, 87, 99, 25, 93, 94, 64, 25] 최솟값 12
      In [36]:
      # 과제31 - 입력 받은 10진수를 8진수로 변환하여 출력
      num = int(input())
      c = []
      
      while num != 0:
        num_a = num % 8
        c.append(num_a)
        num = num // 8
      print(c)
      print(len(c))
      
      for i in range(len(c)-1,-1,-1):
        print(c[i],end=" ")
       
      39 [7, 4] 2 4 7
      In [5]:
      # 과제32 - 리스트에 저장된 8진수를 10진수로 변환하여 출력
      b = [5,6,7,4,3]
      n = 0
      
      for i in range(0,5,1):
        n = n + b[i] * (8**(4-i))
      print(n)
       
      24035
      In [7]:
      # 과제33 - 내림차순 정렬된 데이터에 대한 이진 탐색
      a = [80,76,75,63,57,39,27,26,18,11]
      num =int(input("키 : "))
      
      low = 0
      hie = 9
      
      while low <= hie :
        mid = (low + hie) // 2
        if num == a[mid]:
          print(mid,("에서 탐색 성공"))
          break
        elif num > a[mid]:
          hie = mid -1
        else:
          low = mid+1
      if low > hie:
        print("탐색X")
       
      키 : 26 7 에서 탐색 성공
      In [9]:
      # 과제34 - 삽입정렬을 이용해서 정렬
      a = [3, 7, 2, 8, 5, 1, 10, 9, 4, 6]
      
      for i in range(1, 10):
          key = a[i]      # 현재 정렬할 대상인 숫자를 key에 보관
          j = i - 1       # key의 바로 왼쪽 인덱스부터 비교를 시작하기 위해 설정
      
          # 정렬된 왼쪽 부분을 역순으로 훑으며 key가 들어갈 자리를 찾습니다.
          while j >= 0:
              # 현재 비교 대상이 key보다 크면, 한 칸 뒤로 밀어냅니다.
              if key < a[j]:
                  a[j+1] = a[j]
              else:
                  # key가 비교 대상보다 크거나 같다면 여기가 들어갈 자리이므로 멈춥니다.
                  break
              # 더 왼쪽 원소와 비교하기 위해 인덱스 감소
              j = j - 1
          # while문이 종료되면 j+1 위치가 key가 들어갈 정확한 빈자리가 됩니다.
          a[j+1] = key
      print(a)
       
      [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      In [ ]:
       

      리스트 예제 및 문제 순서도

      '파이썬 > 문제 및 예제' 카테고리의 다른 글

      간단한 프로그램 만들기 1 (계산기)  (0) 2026.04.16
      함수 예제 및 문제  (0) 2026.04.13
      반복구조 예제 및 문제  (0) 2026.04.09
      선택구조 예제 및 문제  (0) 2026.04.07
      순차구조 문제 및 예제  (0) 2026.04.07
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바