내일배움캠프_데이터분석_2기/TIL

[TIL] camp_day9_240425

단ee 2024. 4. 25. 21:02
  • 2주차 네 번째 날. 오늘부터 Python 강의를 수강하고, 다음 주에는 수강 내용을 기초로 한 과제가 예정되어 있다.

학습 내용


  • 오늘은 어제 못 풀었던 만큼 알고리즘 문제를 더 많이 풀었다.

  • list 만들어서 해결한 두 문제

    • 프로그래머스.약수의 합

    • 프로그래머스.나머지가 1이 되는 가장 작은 수 찾기

    • 두 문제 모두 빈 리스트를 만들어서 그 리스트를 통해 풀었다. 더 간단한 코드로 푸는 방법이 있을 것 같은데... 아직 잘 모르겠다.

      Python
      # 나머지가 1이 되는 가장 작은 수 찾기
      def solution(n):
      list = []
      for i in range(1, n + 1):
       if n % i == 1:
           list.append(i)
      answer = min(list)            
      return answer
      Python 
      # 약수의 합 
      def solution(n): 
          list = [] 
          for i in range(1, n + 1): 
              if n % i == 0: 
                  list.append(i)
             answer = sum(list) 
      return answer
  • 잘 안 풀려서 고민했던 문제

    • 프로그래머스.x만큼 간격이 있는 n개의 숫자

    • 일단 x부터 x만큼의 간격으로 n개의 숫자를 리스트에 출력하는 거니까,

    • x * 1(=x), x * 2, x * 3, ... , x * n 까지 리스트로 출력하는 거라고 생각하고 아래처럼 코드를 작성했다.

      Python 
      def solution(x, n): 
          answer = [ range(x,((x * n) + 1),x) ] 
      return answer 
      # TypeError: Object of type range is not JSON serializable 
      # 원래 코드 : range를 리스트 안에 바로 쓸 수 없어서 에러 발생
    • 저 에러가 왜 발생하나 했더니 리스트 안에 함수를 저런 방식으로 쓸 수 없어서 나는 에러였다. 이 환경에서는 구현되지 않는다고...

    • 그래서 GPT를 붙잡고 물어본 결과, 아래와 같이 수정된 코드를 얻었다.

      Python 
      def solution(x, n): 
          answer = [ x * i for i in range(1, n + 1) ] 
      return answer
    • x는 고정이고, 결국 1부터 n까지의 리스트를 출력해 값 하나마다 x를 곱해주면 되는 거였다.

    • 아직 파이썬 구문이 익숙하지 않아서 잘못된 문법으로 썼던 거였는데, 그래도 기본적인 접근 방향 자체는 맞게 가는 것 같다.

  • UNION (SQL)

    • 오늘 코테 풀면서 처음으로 UNION 구문을 활용해보았다. 중복이 제거되면 안 되는 테이블이었기 때문에 UNION ALL 활용.
    • LIMIT 대신 WINDOW 함수 중에서 RANK 사용하면 더 짧은 쿼리로 풀 수 있을 것 같은데... 다음에 다시 풀어봐야겠다.
    • 프로그래머스.주문량이 많은 아이스크림들 조회하기
     SQL
     SELECT a.FLAVOR
     FROM
         (
         SELECT t.FLAVOR
         ,SUM(t.TOTAL_ORDER) sum_order
         FROM
             (
             SELECT FLAVOR, TOTAL_ORDER
             FROM FIRST_HALF
             UNION ALL
             SELECT FLAVOR, TOTAL_ORDER
             FROM JULY
             ) as t
         GROUP BY t.FLAVOR
         ORDER BY sum_order DESC
         LIMIT 3
         ) a

고찰 & 기타


  • 파이썬 강의 걱정했는데 아직 초반이라 시간 내에 끝났다. 부디 내일도 잘 들을 수 있길.
  • 구글 colab 단축키를 좀 외워야겠다. colab 단축키 모음
  • 코딩테스트, 특히 알고리즘 문제를 안 풀고 빼먹는 날이 가끔 생겨서...
    코테를 풀면서 뿌듯함을 느끼고자 귀여운 노션 대시보드를 만들었다. 대시보드 자랑하는 블로그 글

'내일배움캠프_데이터분석_2기 > TIL' 카테고리의 다른 글

[TIL] camp_day11_240429  (0) 2024.04.29
[TIL] camp_day10_240426  (0) 2024.04.26
[TIL] camp_day8_240424  (0) 2024.04.24
[TIL] camp_day7_240423  (0) 2024.04.23
[TIL] camp_day6_240422  (1) 2024.04.22