본문 바로가기
CODING TEST/BOJ

[java] 문제 043 (백준 1850)

by 정성인(人) 2024. 6. 21.

문제

최대공약수

 

교재 풀이

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.*;
public class P1850_최대공약수 {
  public static void main(String[] args) throws Exception {
    Scanner sc = new Scanner(System.in);
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    long a = sc.nextLong();
    long b = sc.nextLong();
    long result = gcd(a, b);
    while (result > 0) {
      bw.write("1");
      result--;
    }
    bw.flush();
    bw.close();
  }
  public static long gcd(long a, long b) {
    if (b == 0)
      return a;
    else
      return gcd(b, a % b);
  }
}

 

내 풀이) 24.6.21에 풀고 맞음

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

public class Main
{
	public static void main(String[] args) throws IOException{
        Scanner sc=new Scanner(System.in);
        long a=sc.nextLong();
        long b=sc.nextLong();
        
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        for(long i=0;i<gcd(a,b);i++){
            bw.write("1");
        }
        
        bw.flush();
        bw.close();
	}
	
	public static long gcd(long a, long b){
	    if(b==0)
	        return a;
        else
            return gcd(b,a%b);
	}
		
}

//모든 자리가 1로만 이루어져있는 두 자연수 A와 B
//=>  A와 B의 최대 공약수를 구해라
//
//A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, 
//A가 111이고, B가 111111인 경우에는 최대공약수가 111이다.
//
//입력되는 수는 263보다 작은 자연수
//    long으로 받으면 될 듯? 
//첫째 줄에 A와 B의 최대공약수를 출력한다. 정답은 천만 자리를 넘지 않는다.
//
//접근법
//    교재 미리 훑어봐서 대략은 앎
//    즉 a,b값이 최대공약수만큼 1을 출력하면 된다는 뜻이다
//    출력할 때는 BufferedWriter를 사용해서 속도를 빠르게 한다 
//슈도코드
//    a,b를 long으로 입력받음 
//    a,b의 최대공약수를 구한다
//        gcd(a,b)
//    for gcd(a,b)만큼 반복해서
//        bw.write(1)
//    bw.flush

 

설명

교재의 가독성이 조금 더 좋지만, 일단 중요한 점은 아니니까, 참고만 하기. 

코테 풀 때 억지로 클린 코드 만들려고 하려는 건 사치니까

 

'CODING TEST > BOJ' 카테고리의 다른 글

[java] 문제 044 (백준 1033)  (0) 2024.06.21
[java] 문제 042 (백준 1934)  (0) 2024.06.21
[java] 문제 041 (백준 11689)  (0) 2024.06.21
[java] 문제040 (백준 1016)  (0) 2024.06.20
[java] 문제 039 (백준 1747)  (0) 2024.06.20