일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Kakao
- 파이썬
- 스위프트
- ios 개발 시작
- roboflow
- swift 배열
- SwiftUI
- Siwft
- 카카오 2019
- 프로그래머스 답
- 카카오 2020
- swift
- 문제
- Python
- swift 시작
- coco 데이터셋
- 카카오 2018
- 머신러닝
- 카카오 2021
- 프로그래머스
- fast.ai
- supervisely
- 데이터셋 만들기
- 카카오
- 날씨 앱
- kakao 2018
- 소수
- 최솟값 만들기
- 이미지학습
- c언어
Archives
- Today
- Total
잡초의 일지
[C language] [Swift] 알고리즘 | 재귀함수 (GCD 최대공약수) 본문
728x90
반응형
SMALL
최대공약수. greatest common divisor.
최대공약수가 뭔지는 다들 알고 있을 것이다.
우선 C로 구현한것.
1. 이것을 원칙대로 푼다면, 각 수의 공약수를 먼저 구하고, 그 공약수들이 서로 일치하는지, 그리고 그것이 최대인지 판별해야 한다.
코드로 구현해보면..
내 머릿속으로 생각한 가장... 간결하게 만든 코드...
그렇지만 이것저것 해야 하는것들이 많다. 작은 수도 봐야 하고, 두개가 모두 나누어 떨어지는지도 봐야 하고.
그리고 찾아보니까
너무 어이없게 짧은데 되는거같은 코드..
2. 삼항연산자를 이용했다.
3. 유클리드 호제법 이라고 최대공약수를 간단하게 구할 수 있는 방법이 있다고 한다.
재귀호출로 구현했다.
for문으로 구현했다.
최대공배수도 구할 수 있다.
두 수를 곱하고, 최대공약수로 나누면 최대공배수이다.
lcm(최소공배수) = (a * b) / gcd(a,b)
그러니.. 굳이 구현하진 않겠다.
그리고 Swift를 연습하기 위해
유클리드호제법을 이용한 gcd를 Swift로 구현한 코드.
유클리드 호제법에 관한 설명. :
ko.wikipedia.org/wiki/유클리드_호제법
728x90
반응형
LIST
'[코딩] 배우는것' 카테고리의 다른 글
MVVM 디자인 패턴 패러다임 (0) | 2020.07.14 |
---|---|
[C language] [Swift] 알고리즘 | 이진 탐색 Binary Search (0) | 2020.06.07 |
[C language] [Swift] 알고리즘 | 재귀함수 (hanoi 하노이 탑) (0) | 2020.05.22 |
[C language] [Swift] 알고리즘 | 재귀함수 (fibonacci 피보나치 수열) (0) | 2020.05.22 |
[C language] [Swift] 알고리즘 | 재귀함수 (power 거듭제곱) (0) | 2020.05.21 |
Comments