본문 바로가기

분류 전체보기510

백준 JAVA 10250 ACM 호텔 package BAEKJOON; import java.util.Scanner; public class NO10250 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for (int i = 0; i < t; i++) { int h = sc.nextInt(); int w = sc.nextInt(); int n = sc.nextInt(); int x = n / h + 1; // 호수 int y = n % h; // 층수 if( n % h == 0 ) { x = n / h ; y = h; } System.out.println(y*100 + x); } } } 2022. 7. 12.
백준 JAVA 1712 손익분기점 카운트를 늘리는 형식으로 반복문을 사용하면 시간초과가 나는 문제였다. 공식을 구해서 방정식으로 풀이하는 문제이다. package BAEKJOON; import java.util.Scanner; public class NO1712 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int C = sc.nextInt(); long count = 0; if (B >= C) { count = -1; } else { count = A / (C - B) + 1; } System.out.println(count); } } 2022. 7. 12.
백준 JAVA 1789 수들의 합 예제를 보고 이해할 수 있는 문제였다. 합이 200이 되는데, 가장 큰 값이 19라면, 1~19까지 더한 값이였다. 따라서 1~ i 까지의 합이 s 보다 크거나 같아야한다. 크면 1~i 의범위에서 1개를 빼면 된다. package BAEKJOON; import java.util.Scanner; public class NO1789 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long s = sc.nextLong(); // 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. long answer = 0; // S 에 도달할 값 long i = 0; // 최댓값을 구하는 변수 while(s.. 2022. 7. 11.
백준 JAVA 2869 달팽이는 올라가고 싶다 실버난이도로 올라오면서 수학에 관련된 문제들이 제법 많아지고 까다로워졌다. 공식을 세워야하며, 이해에 대한 난이도가 브론즈보다 훨씬 많이 올라갔다고 생각한다. 먼저, 낮 과 밤 따로 계산을해야한다. 예제 1번으로 예시를 들어 공식을 세워보면, 1일 째 낮 = 2 1일 째 밤 = 2 - 1 = 1 2일 째 낮 = 2 - 1 + 2 = 3 2일 째 밤 = 2 - 1 + 2 - 1 = 2 3일 째 낮 = 2 - 1 + 2 - 1 + 2 = 4 3일 째 밤 = 2 - 1 + 2 - 1 + 2 -1 = 3 4일 째 낮 = 2 - 1 + 2 - 1 + 2 -1 +2 = 5 (도착) 공식으로 보면 1일 째 낮 = A 1일 째 밤 = A - B = 1 2일 째 낮 = A - B + A = 3 2일 째 밤 = A - B.. 2022. 7. 11.
백준 JAVA 1037 약수 package BAEKJOON; import java.util.Arrays; import java.util.Scanner; public class NO1037 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int [] arr = new int[N]; // 약수를 담기 위한 배열 for (int i = 0; i < N; i++) { arr[i] = sc.nextInt(); } Arrays.sort(arr); // 최소 최대를 구하기 위해 정렬 int max = arr[N-1]; // 최댓값 int min = arr[0]; // 최솟값 System.out.println(ma.. 2022. 7. 10.
백준 JAVA 1978 소수 찾기 isPrime 로 소수인지 아닌지 체크하는 것을 잊지말자 package BAEKJOON; import java.util.Scanner; public class NO1978 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int count = 0; // 카운트 변수 for (int i = 0; i < N; i++) { int num = sc.nextInt(); boolean isPrime = true; // 소수인지 아닌지 구별 if(num == 1 ) continue; // 1은 소수가 아니므로 패스 // 2 ~ num 까지 나눠지는 수 있는지 확인 for (int j =.. 2022. 7. 9.
@JsonIgnore 와 @JsonIgnoreProperties @JsonIgnore 와 @JsonIgnoreProperties 클라이언트에게 JSON 데이터를 넘겨줄 때, 해당 객체의 값을 보이지 않게 하는 어노테이션이다. 예를들어, GET 요청으로 User 정보를 요청했는데, 비밀번호나 주민등록번호 등 보안에 민감한 사항을 제외하고 싶을 때 사용한다. @JsonIgnore 사용해서 클라이언트에게 응답할 때 제외하고 데이터를 보내주려고 한다. 비밀번호와 주민등록번호 객체를 추가해주었다. 아직 데이터베이스를 연결하지 않아서... 초기실행시 static 블럭을 통해 3명의 유저를 추가해주었었는데, 생성자에 비밀번호와 주민등록 번호도 같이 넣어줬다. 포스트맨에서 GET 요청으로 모든 유저정보를 요청해보았다. JSON 형식으로 된 응답 데이터를 보면 @JsonIgnore .. 2022. 7. 8.
백준 JAVA 11050 이항 계수 1 이항 계수 라는걸 처음봤다.. 위와 같이 정의되어있어서, 직접 분모와 분자의 식을 구해서 풀었다. 또한, 재귀함수를 이용했다. package BAEKJOON; import java.util.Scanner; public class NO11050 { public static int factorial(int a ) { if( a == 1) { return 1; } return a * factorial(a-1); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int answer = factorial(a) / (factorial(b) * f.. 2022. 7. 8.
백준 JAVA 1934 최소공배수 최대공약수를 구하는 gcd 메서드를 설정했다. 이후 몇건을 출력할 건지 입력받은 n을 설정했으며, num1 , num2 이렇게 2개의 수를 입력받았다. 최소공배수는 두수의 곱 / 최대공약수 를 이용하면 된다. package BAEKJOON; import java.util.Scanner; public class NO1934 { static int gcd(int a, int b) { if (a % b == 0) { return b; } return gcd(b, a % b); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < n; i++) { .. 2022. 7. 8.