백준 (30) 썸네일형 리스트형 [백준] 2609 최대공약수와 최소공배수_ JAVA ● 문제 ● 풀이 이 문제를 풀이하기 전에 BigInteger 클래스에 대해 개념을 정리하였는데, BigInteger 자체 최대 공약수를 계산하는 유틸리티 메서드가 존재하였다. 최대 공약수만 있으면 이로 최대 공배수를 계산할 수 있기에 바로 적용해보았다. import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); BigInteger numA = BigInteger.valueOf(in.nextInt()); BigInteger numB = BigInteger.valueOf(in.nextInt()).. [백준] 1676 팩토리얼 0의 개수_ JAVA ● 문제 ● 풀이 10! = 10×9×8×...×2×1 = 3,628,800 뒤에서부터 8 전까지 0의 개수가 2개이므로 출력은 2이다. 내가 생각한 풀이는 팩토리얼 값을 구한뒤 문자열로 변환해서 뒤에서부터 문자열이 0이면 카운트 세는 것이다. 첫번째 풀이 ( 오류 ) 이유 : int값으로 팩토리얼 계산 값을 받아왔는데, 특정 이상 수의 값이 int 범위를 초과한다. 해결 방법 : BigInteger 클래스 사용 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner.. [백준] 1436 영화감독 숌_ JAVA ● 문제 ●풀이 666이 연속으로 들어간 숫자에 n번째 숫자가 반복이 있을까하여 1-10, 2-20 직접 증가해보던 중 반복이 없어서 이 방법은 실패. 머리를 싸매다가 지피티에게 도움을 받았다. 지피티의 힌트 : 666부터 시작하여 수를 하나씩 증가시키며 N번째 영화 제목을 찾을 때 까지 조건이 맞는지 확인하는 과정을 반복. 666부터 계속 숫자를 증가시키면서, 증가된 수에 666이 들어가면 카운트를 세서, 그 카운트와 N이 같으면 출력하면 되겠다. ● 최종 코드 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] arg.. [백준] 1181 단어 정렬_ JAVA ● 문제 ● 풀이 먼저, 문자를 입력받아, 배열에 넣은 후 길이순으로 정렬을 한 다음, 길이가 같다면 사전순으로 정렬한다. 길이순으로 정렬하는 방식은 아래와 같다. String[] arr = new String[N]; for(int i =0; i [백준] 10989 수 정렬하기 3_ JAVA ● 문제 ● 풀이 : 간단한 N개의 수를 입력받고 오름차순으로 정렬하는 것이다. 시간, 메모리 제한이 있어 안될걸 예상하고 한 항상 풀던 코드 (역시나 안됨) import java.util.Arrays; import java.util.Scanner; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] arr = new int[in.nextInt()]; for (int i = 0; i [백준] 2775 부녀회장이 될테야_ JAVA ● 문제 ● 풀이 https://st-lab.tistory.com/78의 도움을 받았음. 1호 2호 3호 4호 5호 3층 1 5 15 35 70 2층 1 4 10 20 35 1층 1 3 6 10 15 0층 1 2 3 4 5 반복식을 구하기 위해 대충 계산을 해보았다. 배열로 정보를 넣어놓고, 입력받은 배열 위치 값을 출력하는 방법을 생각해보면, 문제의 제한 (1 [백준] 1259 펠린드롬수_ JAVA ● 문제 ● 풀이 회문을 판별하는 코드를 작성해야한다. 내가 생각한 방법은 입력받은 문자열에서 앞과 뒤를 비교해가며 left, right 변수를 줘서 left [백준] 2798 블랙잭_ JAVA ● 문제 ● 풀이 문제 푸는 법에는 완전탐색으로 모든 수를 3개씩 비교하여 더해봐서 숫자를 비교하는 방법이 먼저 떠오른다. 어떤 기준으로 3개씩 더하고,, 이를 다 더하는지가 문제네 다른 알고리즘이 있을 듯 한데 지피티가 없다네. 그냥 브루트 폴스 탐색으로 하나씩 비교를 해야한다. 지피티의 힌트 모든 가능한 카드 조합을 고려하는 브루트 포스(Brute Force) 방식을 사용할 수 있습니다. 세 장의 카드를 선택하는 모든 조합을 확인하고, 그 합이 M을 넘지 않는 경우의 최댓값을 구합니다. 세 장의 카드를 선택하는 모든 조합을 확인하기 위해 중첩된 반복문을 사용합니다. 첫 번째 카드는 0부터 N-3까지, 두 번째 카드는 첫 번째 카드 다음부터 N-2까지, 세 번째 카드는 두 번째 카드 다음부터 N-1까지.. 이전 1 2 3 4 다음