TIL/내일배움캠프

코테로 파이썬 공부하기 Ⅳ

Kou_ 2026. 5. 26. 20:05

26-05-26

코테로 배워보는 파이썬

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

코테 문제 풀어보고 응용 문제 생각나는거 직접 풀어보기!

  • 각도기
    각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
    • 컴퓨팅 사고
      • if 문 사용해서 조건별 출력값 지정
    • my_answer (⭕)
      def solution(angle):
          if angle == 180:
              answer = 4
          elif angle > 90:
              answer = 3
          elif angle == 90:
              answer = 2
          elif angle > 0:
              answer = 1 
          return answer
    • 다른 사람 풀이
      def solution(angle):
          answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
          return answer
      • angle//90의 결과는 0(0<angle<90), 1(90<=angle<180), 2(angle=180)
      • angle%90>0의 결과는 나누어 떨어지지 않을 때  1(True), 180 or 90일 때 0(False)
      • 두 계산의 합으로 각 조건이 1, 2, 3, 4로 출력
      • 가장 뒤의 *1은 없어도 실행 가능
  • 짝수의 합
    정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
    • 컴퓨팅 사고
      •  range(n+1) 범위에서 짝수 조건 i%2==0 을 만족하는 i의 합을 구하기
    • my_answer (⭕)
      def solution(n):
          sum=0
          for i in range(n+1):
              if i%2==0:
                  sum+=i
          return sum
    • 다른 사람의 무게
      def solution(n):
          return sum([i for i in range(2, n + 1, 2)])    #
      • 처음 리스트 컴프리헨션 사용했을 때 sum(i) for i in range(2, n + 1, 2) 로 입력을 했다.
        실행 오류가 발생했고 원인은 sum(i)를 따로 먼저 실행하기 떄문에
        sum() 내부에 리스트 컴프리헨션을 작성해야 sum 내부에 리스트 값을 합쳐서 하나의 결과로 출력한다.
  • 짝수와 홀수
    정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
    • 컴퓨팅 사고
      • 짝수 조건 사용해서 'Even', else로 'Odd' 반환 
    • my_answer (⭕)
      def solution(num):
          if num%2==0:
              answer = 'Even'
          else:
              answer = 'Odd'
          return answer
    • 다른 사람 풀이
      def solution(num):
          return "Even" if num%2==0 else "Odd"
  • 평균 구하기
    정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
    • 컴퓨팅 사고
      • 배열 합(sum)을 배열 길이(len)로 나누기
    • my_answer (⭕)
      def solution(arr):
          answer = sum(arr)/len(arr)
          return answer
  • 자릿수 더하기
    자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
    예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
    • 컴퓨팅 사고
      • n을 문자열 → map → 리스트 변환 후 다시 정수 변환 → sum
    • my_answer (❌)
      def solution(n):
          a_list = list(map(int,str(n)))
          b_list = list(map(int,a_list))
          answer = sum(b_list)
          return answer

Python 실력 쑥쑥 심화 세션 2회차

알아두면 좋은 파이썬 문법

  • try / except : try에서 에러 발생 시 except 시행
    즉, except 시행 이후에는 다시 try로 돌아가지 않음 → 코드_블록2까지 시행 후 코드_블록4 출력
    • 예시
      try:
          코드_블록1
          코드_블록2    #에러 코드
          코드_블록3
      except:
          print('에러 발생')    #코드_블록2에서 에러 발생하면 except에서 에러 발생 출력
  • enumerate : 인덱스 번호와 값을 같이 꺼내는 문법
    for index, value in enumerate(리스트):
    • 예시 1
      fruits = ["apple", "banana", "orange"]
      for i, fruit in enumerate(fruits):
          print(i, fruit)    
      #출력 → 매개변수 2개 지정하면 아래와 같이 출력
         0 apple
         1 banana
         2 orange
    • 예시 2
      fruits = ["apple", "banana", "orange"]
      for x in enumerate(fruits):
          print(x)
      #출력 → 매개변수 1개만 지정하면 튜플 형태로 출력
      (0, 'apple')
      (1, 'banana')
      (2, 'orange')

  • lambda : 간단한 함수를 한 줄로 만드는 문법
    def add(x):
        return x + 1
              ↓
    lambda x: x + 1
    • 예시
      numbers = [1, 2, 3]
      result = list(map(lambda x: x * 2, numbers))    #numbers의 모든 요소(x)에 대해(map) 2를 곱해서 x로 반환한 뒤 list로 저장
      print(result)
  • list / map : 모든 요소에 같은 작업을 적용하는 함수(map), list의 형태로 만들어주는 함수(list())
    list(map(함수, 리스트))
    • 예시
      numbers = [1, 2, 3, 4, 5]
      result = list(filter(lambda x: x % 2 == 0, numbers))
      print(result)    #2, 4
  • filter : 조건에 맞는 것만 골라내는 함수
    filter(조건함수, 리스트)
    • 예시
      numbers = [1, 2, 3, 4, 5]
      result = list(filter(lambda x: x % 2 == 0, numbers))    #numbers에서 짝수만 골라(filter) 리스트로 저장(list)
      print(result)    #[2,4]