2025/03 51

[백준 1033] 칵테일 (Java) - DFS, 최대공약수, 최소공배수

https://www.acmicpc.net/problem/1033칵테일문제august14는 세상에서 가장 맛있는 칵테일이다. 이 칵테일을 만드는 정확한 방법은 아직 세상에 공개되지 않았지만, 들어가는 재료 N개는 공개되어 있다. 경근이는 인터넷 검색을 통해서 재료 쌍 N-1개의 비율을 알아냈고, 이 비율을 이용해서 칵테일에 들어가는 전체 재료의 비율을 알아낼 수 있다.총 재료 쌍 N-1개의 비율이 입력으로 주어진다. 이때, 칵테일을 만드는데 필요한 각 재료의 양을 구하는 프로그램을 작성하시오. 이때, 필요한 재료의 질량을 모두 더한 값이 최소가 되어야 한다. 칵테일을 만드는 재료의 양은 정수이고, 총 질량은 0보다 커야한다.비율은 "a b p q"와 같은 형식이고, a번 재료의 질량을 b번 재료의 질량으..

[백준 1850] 최대공약수 (Java) - 유클리드 호제법, 최대공약수

https://www.acmicpc.net/problem/1850 최대공약수문제모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오.예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A가 111이고, B가 111111인 경우에는 최대공약수가 111이다.입력첫째 줄에 두 자연수 A와 B를 이루는 1의 개수가 주어진다. 입력되는 수는 263보다 작은 자연수이다.출력첫째 줄에 A와 B의 최대공약수를 출력한다. 정답은 천만 자리를 넘지 않는다. 예제 입력 3 복사500000000000000000 500000000000000002예제 출력 3 복사11 import java.io.*;import java.ut..

[백준 1934]최소 공배수 구하기(Java) 유클리드 호제법

https://www.acmicpc.net/problem/1934 최소공배수문제두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다.두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 둘째 줄부터 T개의 줄에 걸쳐서 A와 B가 주어진다. (1 ≤ A, B ≤ 45,000)출력첫째 줄부터 T개의 줄에 A와 B의 최소공배수를 입력받은 순서대로 한 줄에 하나씩 출력한다.예제 입력 1 복사31 450006 101..

[백준 1747] 소수&팰린드롬 (Java) - 에라토스테네스의 체, 소수

https://www.acmicpc.net/problem/1747 소수&팰린드롬문제어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다.출력첫째 줄에 조건을 만족하는 수를 출력한다.예제 입력 1 복사31예제 출력 1 복사101 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { p..

(Java) int와 long 범위

📌 int와 long이 담을 수 있는 범위자료형크기 (bit)최소값최대값대략적인 자리 수int32-bit-2,147,483,648 (-2³¹)2,147,483,647 (2³¹-1)약 10자리long64-bit-9,223,372,036,854,775,808 (-2⁶³)9,223,372,036,854,775,807 (2⁶³-1)약 19자리📌 int와 long의 자리 수 기준int는 약 10자리 정수까지 안전하게 저장 가능.long은 약 19자리 정수까지 저장 가능.10자리 초과하면 long을 써야 함!→ 예를 들어 100억(10,000,000,000) 이상이면 long 필요.✅ 예제 코드public class IntegerLongTest { public static void main(String[]..

[프로그래머스] SQL 가격이 제일 비싼 식품의 정보 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131115 풀이가격이 MAX값인 상품정보를 출력해내는 문제서브쿼리를 사용해도 되고 LIMIT을 사용해도 된다.서브쿼리 사용시SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICEFROM FOOD_PRODUCTWHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT); LIMIT 사용시SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICEFROM FOOD_PRODUCTORDER BY PRICE DESC LIMIT 1;

[백준 1456] 거의 소수 (Java) - 에라토스테네스의 체

https://www.acmicpc.net/problem/1456거의 소수문제어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다.두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다.입력첫째 줄에 왼쪽 범위 A와 오른쪽 범위 B가 공백 한 칸을 사이에 두고 주어진다.출력첫째 줄에 총 몇 개가 있는지 출력한다.제한1 ≤ A ≤ B ≤ 1014예제 입력 1 복사1 1000예제 출력 1 복사25 풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public clas..

부동소수점(Floating Point)이란? (Java)

💡 부동소수점(Floating Point)이란?부동소수점은 소수를 근사적으로 표현하기 위해 사용하는 컴퓨터의 수 표현 방식컴퓨터는 이진수(0과 1) 만 다룰 수 있어서, 소수를 정확하게 표현하지 못하는 경우가 많음이로 인해 부동소수점 오차(Floating Point Error) 가 발생할 수 있음 1️⃣ 부동소수점이 필요한 이유정수를 표현할 때는 문제가 없지만, 소수(예: 0.1, 0.2, 3.14159) 같은 값은 2진수로 정확하게 표현하기 어렵다.💡 예를 들어, 십진수 0.1을 이진수로 바꾸면0.00011001100110011001100110011001100... (무한 반복)무한히 반복되는 형태가 돼서 정확하게 저장할 수 없다그래서 일정한 자릿수까지만 저장하고 근사값으로 저장하는 방식이 부동소수..

[백준 1929] 소수 구하기 (Java)

https://www.acmicpc.net/problem/1929 소수 구하기문제M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.입력첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.출력한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.예제 입력 1 복사3 16예제 출력 1 복사3571113 풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; s..

[백준 1541] 잃어버린 괄호 (Java)

https://www.acmicpc.net/problem/1541잃어버린 괄호문제세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.입력첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.출력첫째 줄에 정답을 출력한다.예제 입력 1 복사55-50+40예제 ..