• Home

My Codegate

  • Home

백준 14563 완전수 자바 문제풀이

2024/02/16 Posted by Codegate Java No Comments
백준 14563 완전수 자바 문제풀이

문제 링크

문제 내용은 입력으로 자연수 N의 배열을 받은 뒤, N에 해당하는 약수(N을 특정 수로 나눴을 때 나누어 떨어지는 수)를 모두 구해서 자신 제외하고 약수를 모두 더했을 때 N과 똑같다면 Perfect N 미만이라면 Deficient 초과라면 Abundant를 출력해주면 되는데

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.LinkedList;

public class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());
    int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();

    for (int i = 0; i < arr.length; i++) {
      LinkedList<Integer> list = new LinkedList<>();
      for (int j = 1; j < arr[i]; j++) {
        if (arr[i] % j == 0) {
          list.add(j);
        }
      }
      int sum = list.stream().mapToInt(Integer::intValue).sum();
      if (sum == arr[i]) {
        System.out.println("Perfect");
      } else if (sum > arr[i]) {
        System.out.println("Abundant");
      } else {
        System.out.println("Deficient");
      }
    }
  }
}

문제를 풀어보자면 배열의 크기만큼 for문을 돌리면서 안에 for문 또 추가해서 1부터 N의 크기 전까지 반복해주면서 N을 1부터 증가하는 수로 나눠 약수를 판별해서 약수면 List에 넣어주고, 이후 for문을 돌리고 나면 List에 들어있는 값을 모두 더해준 뒤 크기에 따라 다른 텍스트를 출력해주면 끝이다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next