내일배움캠프(QA,QC_5기)

[내일배움캠프] QA/QC_5기 ( 11일차 )

lshxkwh 2026. 3. 23. 20:51

[ Python 복습 및 오답 ] 

  1. Python 함수 복습을 통해 Python 역량 키우기 ( ~ 반복문(While문))
  2. 코드카타 문제 풀이 및 오답 풀이

[ Python 기초탄탄 ]

  1. print 함수란 무엇일까?

     - Print 함수는 화면에 값을 출력하는데 사용되는 함수이다.


[ 문제 1 ] Hello, World! 라는 문구를 출력하라!

- Print("Hello, World!") # 출력 : Hello, World!

 

[ 문제 2 ] 123을 출력하라!

- Print(123) # 출력 : 123

 

[ 문제 3 ] x = 10 이라는 변수와 , 문자열을 함께 출력하라!

- x = 10

  Print(f"변수 x는 {x} 입니다.") # 출력 : 변수 x는 10입니다.


  2. 변수와 데이터 타입

 

     - 변수란?  값을 저장하는 공간

     - 변수의 자료형

       : int(정수) , str(문자) , float(실수) , list(리스트) , tuple(튜플) , dict(딕셔너리) ... 

     - 숫자열 연산 : / , //(몫) , %(나머지) , abs(절댓값), rount(반올림)

 

     - Type 함수 : 자료형 확인함수

 


[ 문제 1 ] age의 자료형을 확인하여라

- Print(Type(age)) # int(정수)


  3. 리스트란 무엇일까?

  

     - 여러항목들을 담을 수 있는 가변 시퀀스

     - [ ] 대괄호 사용

 

3 - 1. 리스트의 기본 구조

     - my_list = [1,2,3,4,5]

 

3 - 2. 리스트의 기본 사용법

  1. 리스트 인덱싱
    1. 첫번째 요소 인덱싱 : [0]
    2. 두번째 요소 인덱싱 : [1]
    3. 마지막 요소 인덱싱 : [-1]
  2. 리스트에 다양한 메서드
    1. append() : 항목 추가
    2. extend() : 리스트에 리스트 추가
    3. remove() : 리스트에서 특정값 삭제
    4. sort() : 오름차순 정렬
    5. sort(reserve=True) : 내림차순 정렬
  3. 리스트 값 삭제하기
    1. del my_list[0] # 출력 : 첫번째 값 삭제

  4. 슬라이싱 이란 무엇일까?

 

     - 리스트의 일부를 추출하는 것


[ 문제 1 ] 리스트의 일부분 추출하기

- my_list = [1,2,3,4,5,6,7,8,9,10]

  print(my_list[2:4]) # 출력 [ 3,4 ] ★여기서 4는 4 미만 까지 출력!


  5. 튜플이란 무엇일까?

 

     - 변경할 수 없는 시퀀스

     - ( ) 소괄호를 사용


  6. 딕셔너리란 무엇일까?

 

     - 키 - 값 쌍의 데이터를 저장 하는 자료 구조

     - { } 중괄호를 사용

 

     < 딕셔너리의 기본구조 > 

    my_dict = {
         'key1': 'value1',
         'key2': 'value2',
         'key3': 'value3'
      }

 


[ 문제 1 ] 딕셔너리 생성

- my_dict =  {'name': 'John', 'age': 30, 'city': 'New York'}

 

[ 문제 2 ] keys() 메서드 예제

- keys = my_dict.keys()
print("Keys:", keys) # 출력: dict_keys(['name', 'age', 'city'])

 

[ 문제 3 ] values() 메서드 예제

- values = my_dict.values()
print("Values:", values) # 출력: dict_values(['John', 30, 'New York'])

 

[ 문제 4 ] items() 메서드 예제

- items = my_dict.items()
print("Items:", items) # 출력: dict_items([('name', 'John'), ('age', 30), ('city',New York)]

 

[ 문제 5 ] get() 메서드 예제

- age = my_dict.get('age')
print("Age:", age) # 출력: 30


  7. 조건문

  1. 조건문이란?
    1.  if , elif , else키워드를 사용하여 구성된다.
    2. if 조건:
       # 조건이 참일 때 실행될 코드
      elif 다른조건:
       # 다른 조건이 참일 때 실행될 코드
      else:
       # 위의 조건이 모두 거짓일 때 실행될 코드
    3. 들여쓰기띄어쓰기의 중요성
      1.  파이썬은 들여쓰기를 통해 블록을 식별하기 때문에 들여쓰기가 제대로
        이루어지지 않으면 오류가 발생합니다.

  8. 반복문 ( for , While )

  1. for문이란?
    1. for 변수 in 반복할 데이터 :
  2. for문 기본 사용법
    1. 리스트 순회하기
      fruits = ["apple", "banana", "cherry"]
      for fruit in fruits:
       print(fruit)  # 출력 : apple", "banana", "cherry"를 순서대로 출력합니다.
    2. 문자열 순회하기
      for letter in "hello":
      print(letter) # 출력: "h", "e", "l", "l", "o"를 순서대로 출력합니다.
    3. 딕셔너리 순회하기
      person = {"name": "John", "age": 30, "city": "New York"}
      for key, value in person.items():
       print(key, " : ", value)
  3. 조건문과 함께 사용할 수 있다
  4.  while 문이란 무엇일까?
    1.  특정 조건이 참(True)일 때에만 실행되며, 조건이 거짓(False)이 될 때까지 반복됩니다. 
    2. while 조건:
    3.  while문의 기본사용법
      1. 1~5까지 출력하기
        i = 1
        while i <= 5:
         print(i)
         i += 1

      2. 사용자 입력 받기
        user_input = ''
        while user_input != 'quit':
         user_input = input("Type 'quit' to exit: ")
         print("You typed:", user_input)

[ 코드카타 문제 풀이 ] - (14~18번)

[ 문제 14 ] 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제한 사항
  • n은 0 이상 3000이하인 정수입니다.

입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

 

< 풀이 >

def solution(n):

    answer = 0 

    for num in range(1,n+1):

          if n % num == 0 :

                 answer += num

    return answer

 

[ 문제 15 ] 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.


제한사항

  • 3 ≤ n ≤ 1,000,000

입출력 예 #1

  • 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.

입출력 예 #2

  • 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.

< 풀이 >

def solution(n):

   for x in range(2,n):

       if n % x == 1:

            return x 

 

[ 문제 16 ]  함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

제한 조건

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

< 풀이 >

def solution(x,n):

     answer = []

     for i in range(1,n+1):

          answer.append(x*i)

     return answer

     

[ 문제 17 ] 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

 

제한 조건

  • n은 10,000,000,000이하인 자연수입니다.

< 풀이 > 

def solution(n):

     answer = [int(i) for i in str(n)[::-1]]

     return answer

 

[ 문제 18 ] 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

 

제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.

입출력 예

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

< 풀이 >

def solution(s):

     answer = int(s)

     return answer