CODING TEST/Code Tree

[코드트리 조별과제] 2주차 정리 (그 계절, 그 날 / 함수를 이용한 369 게임)

2024. 7. 28. 11:51
목차
  1. 학습내용
  2. 그 계절, 그 날
  3. 함수를 이용한 369 게임
728x90

 

함수를 기능별로 나누어

작성하는게 중요하다고 느껴지는 주였다.

잘 관리할 수록

가독성, 코드 작성 등 장점이 많았다.

 

비교적 간단한 문제들 부터

꾸준히 연습해야

복잡한 문제들에도

함수를 잘 관리할 수 있을 것 같다.

 

 

학습내용

그 계절, 그 날

[코드트리]그 계절, 그 날

 

 

y, m , d = map(int, input().split()) #윤년 확인 def check_leap_year(y): ​​​​if y % 4 == 0 and y % 100 != 0: ​​​​​​​​return True ​​​​elif y % 4 == 0 and y % 100 == 0 and y % 400 == 0: ​​​​​​​​return True ​​​​return False # 존재하는지 확인 def check_day(y, m, d): ​​​​end31 = [1,3,5,7,8,10,12] ​​​​end30 = [4,6,9,11] ​​​​if m == 2: ​​​​​​​​if check_leap_year(y): ​​​​​​​​​​​​if d < 30: ​​​​​​​​​​​​​​​​return True ​​​​​​​​else: ​​​​​​​​​​​​if d < 29: ​​​​​​​​​​​​​​​​return True ​​​​elif m in end31: ​​​​​​​​if d < 32: ​​​​​​​​​​​​return True ​​​​elif m in end30: ​​​​​​​​if d < 31: ​​​​​​​​​​​​return True ​​​​return False # 계절확인 def check_season(m): ​​​​if 3 <= m <= 5: ​​​​​​​​return "Spring" ​​​​elif 6 <= m <= 8: ​​​​​​​​return "Summer" ​​​​elif 9 <= m <= 11: ​​​​​​​​return "Fall" ​​​​else: ​​​​​​​​return "Winter" if check_day(y, m, d): ​​​​print(check_season(m)) else: ​​​​print(-1)

 

 

 

이 문제는 윤년, 계절

그리고 달력에 존재 유무 총 3가지를 판단하는 문제다.

 

따라서 코드에 사용되는 함수는 3가지로 분류할 수 있다.

1. 달력에 존재하는 날인지 확인 - check_day()

2. 윤년 확인 - check_leap_year()

3. 계절 확인 - check_season()

 

check_day()

 

어떤 달이냐에 따라서 입력 받은 날짜가

그 달에 속하는지 체크한다.

 

31일 까지 있는 달 - 1, 3, 5, 7, 8, 10, 12

30일 까지 있는 달 - 4, 6, 9, 11

28일, 29일 까지 있는 달 - 2

위의 내용을 리스트로 담아서 관리한다.

 

입력 형식의 경우 1 ≤ D ≤ 31이다.

2월30일이 입력되는 경우 False가 되어야한다.

 

 

check_leap_year()

<윤년인 경우 - 29일까지 있는 해>

 

- 4의 배수이면서 100의 배수가 아닌 경우

👉y % 4 == 0 and y % 100 != 0

 

- 4의 배수이면서 100의 배수이고, 400의 배수인 경우

👉y % 4 == 0 and y % 100 == 0 and y % 400 == 0

 

 

check_season()

3월 ~ 5월 👉 봄

6월 ~ 8월 👉 여름

9월 ~ 11월 👉 가을

12 ~ 2월 👉 겨울

 

 

 

 

728x90

함수를 이용한 369 게임

 

[코드트리] 함수를 이용한 369 게임

 

def check_369(m): ​​​​if '3' in str(m): ​​​​​​​​return True ​​​​if '6' in str(m): ​​​​​​​​return True ​​​​if '9' in str(m): ​​​​​​​​return True ​​​​else: ​​​​​​​​return False def check_num(n): ​​​​if n % 3 == 0 or check_369(n): ​​​​​​​​return(True) ​​​​else: ​​​​​​​​False a, b = map(int, input().split()) cnt = 0 for i in range(a, b+1): ​​​​if check_num(i): ​​​​​​​​cnt += 1 print(cnt)

 

 

3, 6, 9가 들어가 포함된 숫자인지

체크하는 함수와

3의 배수를 확인하는 함수

총 2가지를 만든다.

 

 

check_369()

3, 6, 9가 들어있는지 확인하기 위해

입력받은 수를 string형태로 바꾸고 in을 사용했다.


while n > 0: ‌if n % 10 == 3 or n % 10 == 6 or n % 10 == 9: ‌‌return True ‌n //= 10 return False


in을 사용하지 않는 방법은 일의 자리가

3, 6, 9인지 확인한다.

 

일의 자리를 확인하기 위해서는

확인하고자 하는 수를 10으로 나누면된다.

 

숫자가 십의자리 이상인 경우

일의 자리를 확인한다.

이때 3, 6, 9가 있다면 더 이상의 연산을 멈추고

return True한다.

 

True를 할 수 없다면,

확인한 일의 자리를 제외하여 다음 수를 확인해야한다.

이는 10으로 나눈 몫을 저장하는 방법을 쓰면된다.

그러면 십의 자리가 일의 자리로 변경된다.

 

728x90

'CODING TEST > Code Tree' 카테고리의 다른 글

[코드트리 조별과제] 4주차 (정렬된 숫자 위치 알아내기 / DateTime to DateTime)  (0) 2024.08.11
[코드트리 조별과제] 3주차 정리(출력결과 18 / 출력결과 29 / 재귀함수를 이용한 최소공배수)  (0) 2024.08.04
[코드트리 조별과제] 1주차 정리 (최대공약수 구하기/ 최소공배수 구하기/ 출력결과20)  (0) 2024.07.21
[코드트리 챌린지] 8주차 - 마무리와 시작(코드네임, 사는 지역, 비오는 날)  (0) 2023.10.30
[코드트리 챌린지] 7주자 - 계속해서 나아가(용량이 다른 3개의 물통, 십진수와 이진수)  (0) 2023.10.20
  1. 학습내용
  2. 그 계절, 그 날
  3. 함수를 이용한 369 게임
'CODING TEST/Code Tree' 카테고리의 다른 글
  • [코드트리 조별과제] 4주차 (정렬된 숫자 위치 알아내기 / DateTime to DateTime)
  • [코드트리 조별과제] 3주차 정리(출력결과 18 / 출력결과 29 / 재귀함수를 이용한 최소공배수)
  • [코드트리 조별과제] 1주차 정리 (최대공약수 구하기/ 최소공배수 구하기/ 출력결과20)
  • [코드트리 챌린지] 8주차 - 마무리와 시작(코드네임, 사는 지역, 비오는 날)
더라
더라
250x250
더라
WINSOME
더라
전체
오늘
어제
  • ALL (63)
    • KNOWLEDGE (4)
      • Software engineering (1)
      • Data base (1)
      • Algorithm (0)
      • Security (2)
    • LANGUAGE (5)
      • Python (3)
      • Java (0)
      • C (0)
      • HTML (0)
      • CSS (2)
      • Javascript (0)
    • CODING TEST (35)
      • Beakjoon (20)
      • Code Tree (15)
    • PROGAMMING (6)
      • AR (0)
      • Android (0)
      • Program (1)
      • Project (5)
    • ERROR (4)
      • Android Error (1)
      • Unity (1)
      • Web (2)
    • Self-improvement (4)
      • certificate (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
더라
[코드트리 조별과제] 2주차 정리 (그 계절, 그 날 / 함수를 이용한 369 게임)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.