CODING TEST/Code Tree

[코드트리 조별과제] 3주차 정리(출력결과 18 / 출력결과 29 / 재귀함수를 이용한 최소공배수)

2024. 8. 4. 16:33
목차
  1. 학습내용
  2. 출력결과 18
  3. 출력결과 29
  4. 재귀함수를 이용한 최소공배수
728x90

 

재귀함수는

한 번 꼬이게 되면

헷갈리기 때문에

확실한 이해, 설계가 중요한 것 같다.

 

자주 접해도 헷갈리는 재귀함수다......🤣

 

 

 

학습내용

출력결과 18

 

[코드트리] 출력결과 18

 

 

각 함수의 기능은 다음과 같다.

  • g(): _list의 a~b범위 중 x이하의 숫자 개수 카운트
  • f(): _list의 a~b범위 중 x이하의 숫자 중 인덱스가 k번째인 숫자 이분 탐색 

f(0, 9, 5, 6)일때를 표로 진행상황을 아래의 표처럼 나타낼 수 있다.

 

 

return f(a, mid, x, k) if cnt >= k else f(mid + 1, b, x, k - cnt)

if의 True, False따라 인자가 달라지는 점을 유의해야한다.

 

각 값에 대한 g()의 범위는 다음과 같다.

f(7, 7, 5, 1)때

_list[7]인 2가 return된다.

 

 

 

 

 


 

출력결과 29

 

[코드트리] 출력결과 29

 

 

 

 

그림으로 나타냈을 때 우측에 있는 함수에

*b를 해준다는 점을 빠트리면 안된다.

 

풀기엔 쉬운 문제였지만

계산실수를 조심해야한다.

 

 

 

728x90

 


 

재귀함수를 이용한 최소공배수

 

[코드트리] 재귀함수를 이용한 최고공배수

 

n = int(input()) arr = list(map(int, input().split())) def lcm(num, idx): ​​​​if idx == -1: ​​​​​​​​return num ​​​​for i in range(max(arr[idx], num), arr[idx]*num + 1): ​​​​​​​​if i % arr[idx] == 0 and i % num == 0: ​​​​​​​​​​​​return lcm(i, idx-1) print(lcm(arr[n-1], n-2))

 

n번 인덱스의 요소부터 n-n까지의 요소를

비교하는 방식으로 코드를 작성했다.

 

최소공배수는 for문을 사용해서 구한다.

 

num 👉 현재 최소공배수

idx 👉 현재 인덱스

 

현재 최소공배수, 인덱스의 최소공배수를 구하고

이와 함께 idx-1을 하여 재귀함수 진행한다.

 

list = [1, 2, 3, 4, 5, 6]인 경우

728x90

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

[코드트리 조별과제] 5주차 정리(흰검 칠하기 / 신기한 타일 뒤집기)  (0) 2024.08.18
[코드트리 조별과제] 4주차 (정렬된 숫자 위치 알아내기 / DateTime to DateTime)  (0) 2024.08.11
[코드트리 조별과제] 2주차 정리 (그 계절, 그 날 / 함수를 이용한 369 게임)  (0) 2024.07.28
[코드트리 조별과제] 1주차 정리 (최대공약수 구하기/ 최소공배수 구하기/ 출력결과20)  (0) 2024.07.21
[코드트리 챌린지] 8주차 - 마무리와 시작(코드네임, 사는 지역, 비오는 날)  (0) 2023.10.30
  1. 학습내용
  2. 출력결과 18
  3. 출력결과 29
  4. 재귀함수를 이용한 최소공배수
'CODING TEST/Code Tree' 카테고리의 다른 글
  • [코드트리 조별과제] 5주차 정리(흰검 칠하기 / 신기한 타일 뒤집기)
  • [코드트리 조별과제] 4주차 (정렬된 숫자 위치 알아내기 / DateTime to DateTime)
  • [코드트리 조별과제] 2주차 정리 (그 계절, 그 날 / 함수를 이용한 369 게임)
  • [코드트리 조별과제] 1주차 정리 (최대공약수 구하기/ 최소공배수 구하기/ 출력결과20)
더라
더라
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 정상우.
더라
[코드트리 조별과제] 3주차 정리(출력결과 18 / 출력결과 29 / 재귀함수를 이용한 최소공배수)
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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