백준 (30) 썸네일형 리스트형 [백준] 2292 벌집_ JAVA ● 문제 육각형으로 이루어진 벌집에서 중앙의 방 1부터 시작해서 N번 방까지 지나는 최소의 방 개수를 구하는 문제. ● 풀이 중앙 1을 기준으로 원을 그려보면, 2번째 원은 2-7 (6개), 3번째 원은 8-19 (12개), 4번째 원은 20-37 (18개) 식의 반복이 이루어진다. 각 칸의 원의 개수가 6의 배수임을 고려해서 풀어보면 될거같음. 2부터 n까지 6의 배수로 나눠서,, 몇번째 배수인지 알면 되는건가.. 혼자서 세상 복잡하게 짜고 있었는데, 지피티가 간단한 코드를 도와주었다. import java.util.*; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in... [백준] 2231 분해합_ JAVA ●문제 : 자연수 N의 가장 작은 생성자를 구하는 프로그램 ● 풀이 자연수 N이 주어졌을 때, 1부터 N까지 모든 수의 분해합을 구해보면서, 가장 작은 생성자를 구해야 하므로, 첫 분해합이 자연수와 같으면 그 수를 출력한다. 첫 번째 풀이 위를 생각하며 10의 자리 일 때, 100의 자리 일 때 분해합을 구하는 코드를 쓰다가 생각해보니 입력 조건이 "첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다." 이다.. 그럼 이건 실패. import java.util.*; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int cs = in.nextInt(); int n = 0; fo.. [백준] 1978 소수 찾기_ JAVA ● 문제 ● 풀이 소수인지 확인하는 법 : x가 주어졌을 때, 2부터 x-1까지 나누었을 때 나누어 떨어지는 수가 하나도 없다면 소수이다. 이 말인 즉슨 x를 n으로 나누었을때 나머지가 0이면 안된다는 뜻이다. 일단 1은 소수가 아니고, 2는 무조건 소수이기에 3부터 계산을 하게 구현해보았다. 근데 x-1까지 모두 돌았을 때 나누어떨어지는 수가 없다면 카운트를 세야하는데, 이를 반대로 생각하면 반복문을 돌다가 x % n == 0 이라면 소수가 아니라는 뜻이다. 그래서 boolean isPrime = true; 를 두고, x % n == 0 이라면 false가 되어 반복문을 종료하도록 짜보았다. 이 생각을 하는데 오래걸림. (결국 구글링) import java.util.*; class Main { publ.. [백준] 10250 ACM 호텔_ JAVA ●문제 ● 풀이 층(h)만큼 n01호부터 차례대로 배정하고 n번째 손님의 호수를 출력하는 문제. 첫 풀이의 오류 : 계산을 402호일 때 층부분(4), 호수부분(2) 따로 계산해서 출력하느라 출력이 402호로 나와야 하는데 42로 나옴. 그렇다고 아래 코드처럼 0을 붙이면, 큰 수의 예시일 때 0이 들어가지 않는 호수도 있을 거임. 아예 xx, yy으로 두자리의 숫자로 정해놓는건 어떻게 하는지 알아봐야함 import java.util.*; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); for(int i =0; i [백준] 1085 직사각형에서 탈출_ JAVA ● 문제 ●풀이 직사각형 내에 현재 위치 (x,y) 에서 십자가 모양의 4개의 길이 중 최솟값을 구하는 문제.4개의 길이를 구해서, 배열에 넣고 오름차순으로 분류를 해서 가장 작은 수를 출력하였다. import java.util.*; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); int y = in.nextInt(); int w = in.nextInt(); int h = in.nextInt(); int a = x - 0; int b = w - x; int c = h - y; int d = y - 0; int[] arr = {a,b,c,d}; Array.. [백준] 4153 직각삼각형 _ JAVA ● 문제 ● 풀이 ※주의할 점 : 세 변을 받을 때 어느 변이 대각선인지 알 수 없다. ∴ 3개의 조건을 모두 체크 해야함 𝑎² = 𝘣² + 𝘤² 인지 체크하면 된다. 테스트케이스 수가 정해져 있지 않으므로, while문으로 계속 돌리며 세 변이 0,0,0일 때 반복문을 종료하도록 한다.대각선 변을 알 수 없으므로, 세 가지 변에 대한 𝑎² = 𝘣² + 𝘤²을 모두 체크한다. import java.util.*; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = 0, b = 0, c = 0; while (true) { a = in.nextInt(); b = in.nextInt();.. 이전 1 2 3 4 다음