[Java] 백준 5086번: 배수와 약수

hansung's·2024년 2월 24일
0

문제 url:
배수와 약수

문제

🐱‍👤 실제 코드

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sbd = new StringBuilder();
        StringTokenizer st = null;

        int a = -1;
        int b = -1;
        while(true) {
            st = new StringTokenizer(br.readLine());
            a = Integer.parseInt(st.nextToken());
            b = Integer.parseInt(st.nextToken());
            if(a == 0 && b == 0) {
                break;
            }

            if(b % a == 0) {
                sbd.append("factor").append("\n");
            } else if(a % b == 0) {
                sbd.append("multiple").append("\n");
            } else {
                sbd.append("neither").append("\n");
            }

        }
        System.out.println(sbd);

    }
}

🤢 회고

오랜만에 풀기 쉬운 문제였다.. ㅠㅠ 최근에 좀 힘들었는데 그나마 숨돌려준 문제지 않았을까 한다.
풀이는 간단하게 말하고 끝내겠다.

두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.
첫 번째 숫자가 두 번째 숫자의 약수이다.
첫 번째 숫자가 두 번째 숫자의 배수이다.
첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.    

만약 약수라면 b를 a로 나누었을 때 나머지가 없어야 할 것이다.
만약 배수라면 a를 b로 나누었을 때 나머지가 없어야 할 것이다.
그렇게 생각하고 코드를 짜면 될 것이다.

여기서 StringBuilder에다가 짠 이유는

  • 일일이 System.out.println으로 출력을 해도 무방하다만
  • 한줄에 한줄씩 출력말고 한번에 출력을 하고 싶었기도 했고, 또한 StringBuilder로 출력을 하면 그냥 System.out.println을 했을 때보다 훨씬 빠르게 출력할 수 있어
  • StringBuilder로 문자열을 묶은 다음 출력을 해보았다.
profile
ABAPER를 꿈꾸는 개발자

0개의 댓글