개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (285)
    • Web Front End (74)
      • Javascript & Typescript (26)
      • React (11)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 오늘의회고
  • 릿코드
  • 자바스크립트
  • JavaScript
  • 노개북
  • 개발자
  • TypeScript
  • 노마드북클럽
  • 회고
  • 프론트엔드

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/BOJ

[BOJ][Java] 1037번 - 약수

2020. 2. 5. 17:20
반응형

문제

백준 1037번 문제: 약수

문제 설명

약수의 성질을 활용하는 문제

입력받은 수들을 약수로 가지는 수를 찾는 문제이다.
예로, 50의 약수를 찾아 본다면 아래와 같다.
2 5 10 25
더 큰 수인 80은 아래와 같다.
2 4 5 8 10 16 20 40
여기서 규칙을 찾을 수 있다.
만약 약수들이 배열에 담겨 있다면 인덱스가 0번인 수와 n-1(가장 끝의 인덱스)를 곱하면 원래의 찾으려는 수가 나온다.

그럼 다른 케이스를 찾아 보자.
9는 약수가 3뿐이다. 그렇기 때문에 인덱스가 0일 때와 n-1일 때의 숫자가 자연적으로 같다.
3*3이 되어 원하는 수를 찾을 수 있다.

하지만 이 약수들은 정렬되어 들어오지 않는다. 그래서 정렬이 필요하다.
성공 코드는 아래에서 볼 수 있다.

성공 코드

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int divisors[] = new int[n];

        for (int i = 0; i < n; i++) {
            divisors[i] = sc.nextInt();
        }
        sc.close();

        Arrays.sort(divisors);
        int result = divisors[0] * divisors[n-1];

        System.out.print(result);

    }
}
반응형
저작자표시 (새창열림)
    'Problem Solved/BOJ' 카테고리의 다른 글
    • [BOJ][Java] 2609번 - 최대공약수와 최대공배수
    • [BOJ][Java] 11653번 - 소인수분해
    • [BOJ][Javascript/nodejs] 1991번 - 트리 순회
    • [BOJ][Java] 5086번 - 배수와 약수
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바