자바 372

[Java] 백준 풀기 9063 - 대지

자바 백준 9063번 브론즈 3 https://www.acmicpc.net/problem/9063 9063번: 대지 첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 기하학 문제 풀기 모든 점을 포함하는 가장 작은 사각형을 찾기 위해서 입력되는 x, y 좌표를 각각 비교하여 최소값, 최대값을 기록한다. x 좌표의 (최대값 - 최소값)은 사각형의 가로 길이가 되며, y 좌표의 (최대값 - 최소값)은 사각형의 세로 길이가 된다. 이렇게 찾은 가로 세로를 통해 최소 사각형의 넓이를 구한..

공부하기/백준 2023.08.04

[Java] 백준 풀기 5073 - 삼각형과 세 변

자바 백준 5073번 브론즈 3 https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 문제 보기 분류: 수학, 구현, 기하학 문제 풀기 문제에서 주어진 조건에 맞춰 분기한다. 입력이 0 0 0 일 경우 while loop를 종료하고, 그렇지 않은 경우 가장 긴 변을 뺀 나머지 두 변의 합이 가장 긴 변보다 큰지 확인하여 삼각형을 판단한다. 세 변이 같을때, 두 변만 같을때, 그리고 아무것도 해당하지 않는 경우를 나누어 해당 내용을 출력한다. 코드 보기 import java.util.Scanner; public class M..

공부하기/백준 2023.08.03

[Java] 백준 풀기 10101 - 삼각형 외우기

자바 백준 10101번 브론즈 4 https://www.acmicpc.net/problem/10101 10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 문제 보기 분류: 구현, 기하학 문제 풀기 문제에서 주어진 조건에 따라 분기한다. 세 숫자를 입력 받고, 세 수의 합이 180이 되는지 먼저 계산하여 삼각형인지 판단한다. 180이 된다면 각 숫자가 모두 60인지 판단하고, 그렇지 않으면 세 가지 경우를 갖는 두 쌍의 각이 같은지 판단한다. 위의 경우를 모두 만족하지 않으면 세 각이 모두 다른 삼각형이다. 코드 보기 import java.util.Scanner; public class Ma..

공부하기/백준 2023.08.02

[Java] 백준 풀기 14215 - 세 막대

자바 백준 14215번 브론즈 3 https://www.acmicpc.net/problem/14215 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 기하학 문제 풀기 세 개의 막대를 오름차순 정렬하여 짧은 두 개와 긴 한 개의 막대기를 비교한다. 짧은 두 개의 합이 긴 하나보다 크면 삼각형을 이루기 때문에 세 개의 합을 출력한다. 그렇지 않고 짧은 두 개의 합이 긴 것보다 작으면 긴 막대기를 잘라서 삼각형을 만들어야 한다. 이때, 삼각형 둘레의 최대 길이는 짧은 두 개의 합에서 정수 1만큼 줄어든 나머지 막대일 때 최대가 되기 때문에 이를 이용하여 결과를 출력한다. 코드 보기 import jav..

공부하기/백준 2023.07.31

[Java] 백준 풀기 2166 - 다각형의 면적

자바 백준 2166번 골드 5 https://www.acmicpc.net/problem/2166 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 문제 보기 분류: 기하학, 다각형의 넓이 문제 풀기 다각형의 면적을 구하는 공식인 `신발끈 공식`을 이용한다. 문제의 다각형을 삼각형으로 분할하여 각 면적을 `신발끈 공식`을 통해 구하고 그 면적들을 더하여 전체 다각형의 면적을 찾는다. 입력받은 다각형의 꼭지점을 배열에 저장한다. 배열에 저장된 꼭지점을 for loop을 통해 두 개씩 선택하고 기준점과 함께하는 삼각형의 면적을 구한다. 구한 ..

공부하기/백준 2023.07.30

[Java] 백준 풀기 6502 - 동혁 피자

자바 백준 6502번 브론즈 2 https://www.acmicpc.net/problem/6502 6502번: 동혁 피자 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 숫자 세 개로 이루어져 있고, 순서대로 r, w, l이다. r은 식탁의 반지름이고, w와 l은 피자의 너비와 높이이다. (1 ≤ r ≤ 1000 www.acmicpc.net 문제 보기 분류: 수학, 구현, 기하학, 피타고라스 정리 문제 풀기 주어진 직사각형 피자의 수치인 너비와 높이를 통해 `대각선`의 길이를 구한 뒤, 원형 테이블의 `반지름 * 2` 보다 작거나 같은지 판단한다. boolean으로 판단된 결과를 테스트 번호와 ternary operator를 이용하여 답안 형식에 맞게 출력한다. 코드 보기 impor..

공부하기/백준 2023.07.29

[Java] 백준 풀기 1004 - 어린 왕자

자바 백준 1004번 실버 3 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 문제 보기 분류: 수학, 기하학 문제 풀기 문제에서 요구하는 횟수를 구하기 위해서 출발점 또는 도착점이 주어지는 원들의 안에 위치하는지 판단한다. 점이 원안에 있어야 경계면을 지나기 때문이다. 이때, 출발점과 도착점이 동시에 원안에 위치할 때에는 이 판단이 성립하지 않으므로 이는 제외한다. 한 점과 원의 정보가 주어졌을때 점이 안에 있는지 판단하기 위해..

공부하기/백준 2023.07.28

[Java] 백준 풀기 16479 - 컵라면 측정하기

자바 백준 16479번 브론즈 3 https://www.acmicpc.net/problem/16479 16479번: 컵라면 측정하기 첫째 줄에 K의 값이 주어진다. 둘째 줄에는 D1과 D2의 값이 사이에 공백을 한 개 두고 차례대로 주어진다. 단, K, D1, D2의 값은 양의 정수이다. www.acmicpc.net 문제 보기 분류: 수학, 기하학, 피타고라스 정리 문제 풀기 컵라면의 높이를 구하기 위해 피타고라스 정리를 이용한다. 윗면과 아랫면의 반지름을 구하고 두 개의 차를 통해 한 변을 정의한다. 이 변과 주어진 변 K로 피타고라스 정리를 적용하여 높이를 찾는다. 코드 보기 import java.util.Scanner; public class Main { public static void main(..

공부하기/백준 2023.07.27

[Java] 백준 풀기 2003 - 수들의 합 2

자바 백준 2003번 실버 4 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 문제 보기 분류: 브루트포스 알고리즘, 누적 합, 두 포인터 문제 풀기 수열의 첫번째 value를 시작으로 다음 value와 합하여 누적 합을 만들고, 그 누적 합을 다음 value와 합하여 다시 누적 합을 만드는 식을 반복하면서 주어진 수열의 마지막 value까지 누적 합하는 누적 합 array를 완성한다. 누적 합 arra..

공부하기/백준 2023.07.26

[Java] 백준 풀기 1676 - 팩토리얼 0의 개수

자바 백준 1676번 실버 5 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 수학 문제 풀기 뒤에서부터 처음 0이 아닌 숫자가 나올때까지 0의 개수를 구한다. 이때, 0의 개수는 주어진 수 N에서 5의 빈도수를 세어 구한다. N보다 작은 수들 중에서 5의 배수는 1개씩, 25의 배수는 2개씩, 125의 배수는 3개씩, ... 이런 식으로 각각의 배수들을 세어서 전체 0의 개수를 구한다. N이하의 수 중 5의 배수만 관심이 있기에 for loop는 5부터 시작하여 i *= 5 스텝으로 증가한다. 코드 보기 imp..

공부하기/백준 2023.07.25