본문 바로가기

전체 글667

[백준] 9613번 - GCD의 합 [Java] https://www.acmicpc.net/problem/9613 1.  아이디어 GCD의 쌍은 유클리드 호제법을 활용하면 간단하게 구할 수 있다.2. 문제풀이 중복이 가능하기 때문에 반복문에서 유클리드 호제법으로 최대 공약수를 반복해서 구하면 간단하게 해결할 수 있다.이때 최대 공약수의 합은 int형 오버플로우가 발생할 수 있는 점에 주의해야 한다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.i.. 2024. 12. 4.
[백준] 12779번 - 상품 is 뭔들 [Java] https://www.acmicpc.net/problem/12779 1.  아이디어 약수의 개수가 홀수인 숫자는 제곱수라는 점을 활용한다.2. 문제풀이 4, 9, 16 같은 제곱수만 약수의 개수가 홀수가 되므로 해당 범위에 포함된 제곱수를 찾은 후 유클리드 호제법으로 기약분수로 출력하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter.. 2024. 12. 3.
[백준] 9506번 - 약수들의 합 [Java] https://www.acmicpc.net/problem/9506 1.  아이디어 완전수인지 아닌지의 여부를 판단하는 문제로 일일이 약수들을 더해서 완전수가 되는지 판단하고 형식에 맞게 출력하는 방식으로 간단하게 구현했다.2. 문제풀이 1부터 N 이전까지 모든 수로 나누어보며 약수들을 리스트에 담아주고 완전수가 되는지 판단했다.이후 StringBuilder를 활용해서 완전수일 때와 완전수가 아닐 때 형식에 맞게 출력하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br =.. 2024. 12. 3.
[백준] 1037번 - 약수 [Java] https://www.acmicpc.net/problem/1037 1.  아이디어 약수의 특성을 활용하면 간단하게 해결할 수 있다.2. 문제풀이 특정 자연수의 약수를 크기 순으로 나열했을 때 가장 큰 약수와 가장 작은 약수의 곱, 혹은 두 번째로 큰 약수와 두 번째로 작은 약수의 곱 모두 원래 자연수가 되는 점을 활용하면 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); S.. 2024. 12. 3.
[백준] 2312번 - 수 복원하기 [Java] https://www.acmicpc.net/problem/2312 1.  아이디어 for문과 while문을 활용해서 간단하게 소인수분해를 구현할 수 있다.2. 문제풀이 2부터 점점 큰 수로 나눗셈을 해보며 소인수분해를 할 수 있는데 합성수는 이미 그 보다 작은 소수로 나누어졌기에 자연스럽게 소인수분해를 할 수 있다.소인수분해 이후 남은 수가 소수인지 1인지에 따라서 조건만 한번 더 체크해주면 된다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(.. 2024. 12. 3.
[백준] 5347번 - LCM [Java] https://www.acmicpc.net/problem/5347 1.  아이디어 유클리드 호제법을 이용해서 최소 공배수를 간단하게 구할 수 있다.2. 문제풀이 유클리드 호제법으로 최대 공약수를 구하는 gcd 메서드를 작성하고 gcd를 통해 최소 공배수를 구할 수 있는 lcm 메서드를 작성하는 방식으로 구현했다.최소 공배수를 구하는 과정에서 int형 오버플로우가 날 수 있는 점만 주의해서 구현하면 된다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(.. 2024. 12. 3.
[백준] 13241번 - 최소공배수 [Java] https://www.acmicpc.net/problem/13241 1.  아이디어 유클리드 호제법을 이용해서 최소 공배수를 간단하게 구할 수 있다.2. 문제풀이 유클리드 호제법으로 최대 공약수를 구하는 gcd 메서드를 작성하고 gcd를 통해 최소 공배수를 구할 수 있는 lcm 메서드를 작성하는 방식으로 구현했다.문제 조건에서 long 타입을 사용하라고 한 점만 참고해서 구현하면 간단하게 해결할 수 있다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader.. 2024. 12. 3.
[백준] 1934번 - 최소공배수 [Java] https://www.acmicpc.net/problem/1934 1.  아이디어 유클리드 호제법을 이용해서 최소 공배수를 간단하게 구할 수 있다.2. 문제풀이 유클리드 호제법으로 최대 공약수를 구하는 gcd 메서드를 작성하고 gcd를 통해 최소 공배수를 구할 수 있는 lcm 메서드를 작성하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWr.. 2024. 12. 3.
[백준] 2609번 - 최대공약수와 최소공배수 [Java] https://www.acmicpc.net/problem/2609 1.  아이디어 유클리드 호제법을 이용해서 최대 공약수와 최소 공배수를 간단하게 구할 수 있다.2. 문제풀이 유클리드 호제법으로 최대 공약수를 구하는 gcd 메서드를 작성하고 gcd를 통해 최소 공배수를 구할 수 있는 lcm 메서드를 작성하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); St.. 2024. 12. 3.
[백준] 11653번 - 소인수분해 [Java] https://www.acmicpc.net/problem/11653 1.  아이디어 for문과 while문을 활용해서 소인수분해를 하는 방식으로 구현했다.2. 문제풀이 작은 수부터 나눠주면 소수인지 여부를 판단하지 않아도 소인수분해를 할 수 있는 점을 활용했다.다만 같은 수로 여러번 나눌 수 있는 점을 고려해서 while문으로 반복적으로 나누어주었고 소인수분해 이후 남은 값이 1 보다 클 경우 해당 값까지 포함해줘야 해서 이 부분까지 고려해서 구현했다.3. 코드 import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffer.. 2024. 12. 3.
[백준] 2581번 - 소수 [Java] https://www.acmicpc.net/problem/2581 1.  아이디어 소수 판정에 유용한 에라토스테네스의 체를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 N의 범위가 10,000 이하의 자연수로 주어져 있으므로 10,000 이하의 소수를 판정하는 boolean 타입 배열을 구하고 이를 대조하는 방식으로 구현했다.M부터 N까지 반복문을 순회하며 합과 최솟값을 갱신하면 간단하게 구현할 수 있다.최솟값은 한번만 갱신해도 되지만 가독성을 위해 그냥 반복문 안에 넣었다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { .. 2024. 12. 3.
[백준] 1929번 - 소수 구하기 [Java] https://www.acmicpc.net/problem/1929 1.  아이디어 소수 판정에 유용한 에라토스테네스의 체를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 N의 범위가 1,000,000 이하의 자연수로 주어져 있으므로 1,000,000 이하의 소수를 판정하는 boolean 타입 배열을 구하고 이를 대조하는 방식으로 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 2024. 12. 3.