본문 바로가기
TIL

본 캠프 19일차 TIL

by Data 학습자 2024. 7. 12.

TIL: Python 학습 내용

오늘 풀어본 문제:

2016년 1월 1일은 금요일입니다. 2016년 a월 b일이 무슨 요일인지 계산하는 문제입니다. 두 수 a, b를 입력받아 해당 날짜의 요일을 반환하는 함수를 작성합니다. 요일의 이름은 "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"입니다.

제한 조건:

  • 2016년은 윤년입니다.
  • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

구체적 구현:

 
def solution(a, b):
    # 각 월의 일수 (2016년은 윤년이므로 2월이 29일입니다)
    days_in_month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    # 요일 배열
    days_of_week = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]
    
    # 주어진 날짜까지의 일수를 계산
    total_days = sum(days_in_month[:a-1]) + b - 1
    
    # 요일 계산
    answer = days_of_week[total_days % 7]
    
    return answer
  1. 초기 설정:
    •    days_in_month 리스트를 사용하여 각 월의 일수를 정의합니다. 2016년은 윤년이므로 2월은 29일입니다.
    •    days_of_week 리스트를 사용하여 요일을 정의합니다. 2016년 1월 1일은 금요일(FRI)로 시작합니다.
  2. 날짜 계산:
    •    주어진 월(a) 이전까지의 일수를 모두 합산하고, 해당 월의 일수(b)를 더하여 총 일수를 계산합니다. (이때 1월 1일부터 시작하므로 b에서 1을 뺍니다.)
  3. 요일 계산:
    •    총 일수를 7로 나눈 나머지를 사용하여 요일을 결정합니다. 나머지가 0이면 금요일, 1이면 토요일, ... 6이면 목요일입니다.
  4. 결과 반환:
    •    계산된 요일을 반환합니다.

오늘 배운 점:

  • 날짜 계산 문제를 해결하기 위해 리스트와 나머지 연산을 활용하는 방법을 배웠습니다.
  • 직접 16년도의 달력을 찾아보며 기입해야해서 번거로웠다고 느꼈으며 문제 자체에 따로 리스트인 "Month" 변수가 있어서 그걸 활용해서 문제를 푸는 식으로 만들어졌으면 더 좋지 않았을까 하는 생각이 들었다.

TIL: SQL 학습 내용

오늘 풀어본 문제:

동물 보호소에 들어온 동물의 정보를 담은 ANIMAL_INS 테이블에서 가장 최근에 들어온 동물의 입소 시간을 조회하는 문제입니다.

구체적 구현:

 
SELECT MAX(DATETIME) AS 가장 최근에 들어온 시간
FROM ANIMAL_INS;
  1. MAX 함수 사용:
    •    MAX 함수를 사용하여 DATETIME 컬럼에서 가장 큰 값을 찾습니다. 이는 가장 최근에 들어온 동물의 입소 시간을 의미합니다.
  2. 결과 반환:
    •    결과 컬럼의 이름은 "시간"으로 지정하여 가장 최근 입소 시간을 반환합니다.

오늘 배운 점:

  • 안타깝게도 SQL에서 배운 내용은 없다.

'TIL' 카테고리의 다른 글

본 캠프 21일차 TIL  (0) 2024.07.14
본 캠프 20일차 TIL  (0) 2024.07.13
본 캠프 18일차 TIL  (0) 2024.07.11
본 캠프 17일차 TIL  (0) 2024.07.10
본 캠프 16일차 TIL  (0) 2024.07.09