CodeKata
SQL
128. Revising the Select Query II
SELECT
name
FROM
city
WHERE
countrycode = 'USA'
AND population > 120000
;
129. Select All
SELECT
*
FROM
city
;
130. Select By ID
SELECT
*
FROM
city
WHERE
id = 1661
;
131. Japanese Cities' Attributes
SELECT
*
FROM
city
WHERE
countrycode = 'JPN'
;
132. Japanese Cities' Names
SELECT
name
FROM
city
WHERE
countrycode = 'JPN'
;
133. Weather Observation Station 1
SELECT
city
, state
FROM
station
;
134. Weather Observation Station 2
SELECT
ROUND(SUM(lat_n), 2) lat
, ROUND(SUM(long_w), 2) lon
FROM
station
;
Python
54. 2016년
def solution(a, b):
answer = ''
ya = 20
yb = 16
days = {1:'SUN' , 2:'MON', 3:'TUE', 4:'WED', 5:'THU', 6:'FRI', 0:'SAT'}
if (a == 1) | (a == 2) :
a += 12
yb -= 1
h = (b + int(((a+1)*13)/5) + yb + int(yb/4) + int(ya/4) - 2*ya ) % 7
answer = days[h]
return answer
→ 요일을 구하는 첼러의 합동식
더 알아보기
참고할 만한 다른 풀이
import datetime
def solution(a, b):
return datetime.date(2016,a,b).strftime('%a').upper()
def solution(a,b):
month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU']
m = a-1
d = sum(month[:m])+(b-1)
return day[d%7]
def solution(a,b):
month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU']
return day[(sum(month[:a-1])+b-1)%7]
def solution(a,b):
day_name = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED']
month_dict = {
"1":31,
"2":29,
"3":31,
"4":30,
"5":31,
"6":30,
"7":31,
"8":31,
"9":30,
"10":31,
"11":30,
"12":31
}
days = 0
for i in range(1, a):
days += month_dict[str(i)]
days += b
index = days % 7
return day_name[index]
- doomsday algorithm

def get_doomsday(year):
century, year_end = divmod(year, 100)
base_dates = [2, 0, 5, 3]
base_date = base_dates[century % 4]
a, b = divmod(year_end, 12)
c = b // 4
doomsday = (base_date + a + b + c) % 7
return doomsday
def is_leap_year(year):
if year % 400 == 0:
return True
if year % 100 == 0:
return False
if year % 4 == 0:
return True
return False
def get_plus_day(year, month, day):
same_days = [-1, 3, 28, 0, 4, 9, 6, 11, 8, 5, 10, 7, 12]
if is_leap_year(year):
same_days[1] += 1
same_days[2] += 1
plus_day = (day - same_days[month]) % 7
return plus_day
def doomsday():
year, month, day = map(
int, input("yyyy mm dd의 형태로 날짜를 입력해주세요. (띄어쓰기로 구분)\n").split()
)
doomsday = get_doomsday(year)
plus_day = get_plus_day(year, month, day)
dow_index = (doomsday + plus_day) % 7
day_of_the_week = ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]
return f"{year}년 {month}월 {day}일은 {day_of_the_week[dow_index]} 입니다."
print(doomsday())
심화 프로젝트
주제 탐방
기획서 작성
회고
- 심화 프로젝트 시작!
- 계획에 맞춰서 결과물 잘 내자~
- 제출 기한을 꼭 맞추자!