(자바 코테연습) 최대공약수와 최고 공배수

2024. 7. 10. 15:33·(Java)코테연습

 

 

Java 코드 예제

문제 설명

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3,12)는 [3,12]를 반환해야 합니다.

 

제한사항

-두 수 는 1이상 10000000이하의 자연수입니다.

 

 

        import java.util.ArrayList;

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        
        // 최대공약수(GCD) 구하기
        int gcd = gcd(n, m);
        answer[0] = gcd;
        
        // 최소공배수(LCM) 구하기
        int lcm = (n * m) / gcd;
        answer[1] = lcm;
        
        // 소수 찾기
        ArrayList primes = findPrimes(lcm);
        // primes 리스트는 2부터 lcm 미만의 소수를 담고 있음
        
        // 예시로 답을 출력하고 있으므로, 실제 문제에 맞는 출력 방식으로 수정 필요
        
        return answer;
    }
    
    // 최대공약수(GCD)를 구하는 메서드 (유클리드 호제법)
    private int gcd(int a, int b) {
        while (b != 0) {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return Math.abs(a); // 절댓값 처리
    }
    
    // 주어진 수까지의 소수를 찾는 메서드
    private ArrayList findPrimes(int limit) {
        ArrayList primes = new ArrayList<>();
        
        for (int num = 2; num < limit; num++) {
            boolean isPrime = true;
            for (int i = 2; i <= Math.sqrt(num); i++) {
                if (num % i == 0) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) {
                primes.add(num);
            }
        }
        
        return primes;
    }
}

    
반응형

'(Java)코테연습' 카테고리의 다른 글

문자열끼리 크기 비교하는 경우  (0) 2024.07.12
각각의 배열에서 3개의 정수 합이 0이 되어야 하는경우  (2) 2024.07.12
이상한 문자 만들기 (split, toUpperCase, toLowerCase 사용)  (0) 2024.07.11
자판기  (0) 2024.07.10
랜덤 닉네임 생성  (0) 2024.07.10
'(Java)코테연습' 카테고리의 다른 글
  • 각각의 배열에서 3개의 정수 합이 0이 되어야 하는경우
  • 이상한 문자 만들기 (split, toUpperCase, toLowerCase 사용)
  • 자판기
  • 랜덤 닉네임 생성
wanduek
wanduek
차근차근 쌓아가는 지식
  • wanduek
    완득님의 블로그
    wanduek
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Onboarding (0)
      • 아티클 (0)
      • SQL 정리 (20)
      • 웹개발 기초정리(프엔) (9)
      • (Java)코테연습 (27)
      • 미니 프로젝트 (9)
        • 자기소개 웹페이지 (5)
        • 수강생 관리 프로그램(Java) (4)
      • GitHub 오류 및 명령어 정리 (7)
      • Java 문법정리 (Array부터) (17)
      • Java로 이용한 기능 (2)
      • Web지식 (12)
        • web3 (6)
        • 네트워크 (6)
      • 인텔리제이 오류 대처 방법 (1)
      • Computer Science (7)
      • Spring (38)
        • 미니 프로젝트(배달) (2)
        • Spring 트러블 슈팅 (3)
        • QueryDSL, JPQL (3)
        • 미니 프로젝트(뉴스피드) (5)
        • 미니 프로젝트(Trello) (2)
      • 개발자 밋업 (1)
      • Docker (2)
      • Redis (1)
      • AWS (6)
        • AWS 트러블 슈팅 (2)
      • Jmeter (2)
      • 우리 지금 만나 (12)
      • Kafka (1)
      • RabbitMQ (2)
        • 트러블 슈팅 (1)
      • STOMP (2)
      • WebSocket (3)
        • 트러블 슈팅 (2)
      • Node.js (2)
      • Elastic Search (2)
      • Nginx (1)
      • 퍼블엘 (2)
      • openresty (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백앤드개발자 #초심자
    ㅏㄷ
    json
    where
    github
    git
    fetch
    SQL
    jquery
    groupby
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
wanduek
(자바 코테연습) 최대공약수와 최고 공배수
상단으로

티스토리툴바