공부하기/백준 501

[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

[Java] 백준 풀기 11653 - 소인수분해

자바 백준 11653 브론즈 1 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 소수 판정 문제 풀기 소인수분해는 주어진 정수 N을 소수인 i로 나누며, 나눌 수 없을 때까지 반복한다. 이때, i는 2부터 제곱근까지 검사한다. N이 1인 경우 바로 return 한다. for loop과 while loop을 통해 정수 N을 나누어 떨어지는 소인수 i를 모두 출력하고, 최종 남은 소인수를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(..

공부하기/백준 2023.07.24

[Java] 백준 풀기 2609 - 최대공약수와 최소공배수

자바 백준 2609번 브론즈 1 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 유클리드 호제법 문제 풀기 유클리드 호제법을 이용하여 최대공약수를 구한다. Wikipedia: 유클리드 호제법 두 수가 아래와 같이 정해졌을때, 18 24 num2가 0이 될때까지, 함수의 파라미터 num1과 num2의 위치 바꿈과 동시에 num1 % num2의 나머지를 구하는 재귀함수를 돌린다. num1: 18, num2: 24 num1: 24, num2: 18 num1: 18, num2: 6 n..

공부하기/백준 2023.07.23