Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 오프라인 설치
- kafkaCLI
- 의존성 설치
- REST 성숙도 모델
- 특정 행 출력
- 특정 행
- 쿠버네티스 패턴
- redis 설정
- 자료구조
- Port already in use: 9999
- SQL 내장 함수
- image 압축
- apt-rdepends
- 선언적 배포
- 폐쇄망
- Exception Handing
- 웹 애플리케이션 요청 흐름
- 웹 애플리케이션 아키텍처
- 의존성 패키지 설치
- abstract 제어자
- docker
- Oracle.DatabaseError
- redis 외부설정
- 도커
- 예외 전가
- ubuntu redis
- 포함 관계
- 객체
- 예측 범위 내의 요구사항
- redis 명령어
Archives
- Today
- Total
리꾸므
[프로그래머스 Level1_Java]최대공약수와 최소공배수 본문
#36 최대공약수와 최소공배수
문제설명
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수,
solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다.
예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
제한 사항
두 수는 1이상 1000000이하의 자연수입니다.
입출력 예
n m return
3 12 [3, 12]
2 5 [1, 10]
코드
class Solution {
public int[] solution(int n, int m) {
int b = 0;
int c = 0;
int a =1;
int[] answer = new int[2];
//혹시 몰라서 n,m중 작은 자연수가 b 큰 자연수가 c로 정렬,
if(n<m){
b = n;
c = m;
}if(n>m){
b = m;
c = n;
}
//b%i와 c%i ==0이면 공약수임으로 answer[0] ==i
for(int i = 1;i<=b; i++){
if(b%i+c%i==0){
answer[0] = i;
}
}
// c*a가 b로 나눠질때 나머지가 0일경우 최소 공배수임으로 answer[1] =c*a
for(int i=0; i<c; i++){
if((c*a)%b==0){
answer[1] = c*a;
break;
}else{
a++;
}
}
return answer;
}
}
여담
결혼식을 가야해서 아침에 급하게하는라
코드를 정리할 틈이 없었다. 많이 조잡한게 느껴지고
더욱 간결하게 할 수 있는 방법이 있을 것 같다.
여유 있을때 복기해야겠다.
'발걸음 > 알고리즘' 카테고리의 다른 글
[프로그래머스 Level1_Java]수박수박수박수박수박수 (0) | 2022.08.24 |
---|---|
[프로그래머스 Level1_Java]K번째수 (0) | 2022.08.21 |
[프로그래머스 Level1_Java]예산 (0) | 2022.08.20 |
[프로그래머스 Level1_Java] 약수의 합 (0) | 2022.08.18 |
[프로그래머스 Level1_Java] 두개 뽑아서 더하기 (0) | 2022.08.11 |