공부하기/백준 500

[Java] 백준 풀기 4597 - 패리티

자바 백준 4597번 브론즈 2 https://www.acmicpc.net/problem/4597 4597번: 패리티 입력은 여러 개의 비트 스트링으로 이루어져 있다. 각 비트 스트링은 한 줄로 이루어져 있고, 길이는 1~31비트이다. 또, 비트 스트링의 마지막 문자는 e 또는 o이다. (e: 짝수 패리티, o: 홀수 패리티 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 1의 개수를 세어서 짝수개인지 홀수개인지 찾고, 각각 마지막 패리티와 비교하여 일치하는지 확인한다. 일치할 경우 마지막 패리티 자리에 `0`으로 교체하여 출력하고 일치하지 않으면 `1`로 교체하여 출력한다. 한 줄로 입력된 문자는 charAt() 함수를 이용하여 parity 및 1을 구분한다. 코드 보기 impo..

공부하기/백준 2023.08.12

[Java] 백준 풀기 3273 - 두 수의 합

자바 백준 3273번 실버 3 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 문제 보기 분류: 정렬, 투 포인터 문제 풀기 입력된 숫자 수열을 오름차순 정렬을 하고 첫번째 index와 마지막 index를 시작으로 two-pointer technique을 사용하여 두 수의 합을 확인한다. 두 수의 합이 주어진 x와 같으면, 카운트를 늘리고 array의 다음 안쪽 두 수를 확인한다. 만약 두..

공부하기/백준 2023.08.11

[Java] 백준 풀기 21921 - 블로그

자바 백준 21921번 실버 3 https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 문제 보기 분류: 누적 합, 슬라이딩 윈도우 문제 풀기 for loop을 이용하여 구간 합을 찾을 경우 `시간초과`가 발생한다. 시간 초과를 해결하기 위해 for loop을 사용하지 않고 다이나믹 프로그램을 이용하여 이미 계산된 날짜별 누적 합에서 필요한 날짜 구간만큼의 index 차이를 통해 결과를 얻는다. 구간마다 총 방문자를 계산하여 최대 방문자를 넘을..

공부하기/백준 2023.08.09

[Java] 백준 풀기 11005 - 진법 변환 2

자바 백준 11005번 브론즈 1 https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 주어진 10진수를 목표 진법으로 나누어 그에 따른 나머지가 10 미만인지 또는 10 이상인지 판별한다. 10 미만일 경우 숫자로 변환하고, 10 이상일 경우 알파벳으로 변환하여 저장한다. 숫자 또는 알파벳 변환은 `char`를 이용한 계산 특성을 이용한다. 코드 보기 import java.util.Scanner; pu..

공부하기/백준 2023.08.08

[Java] 백준 풀기 13222 - Matches

자바 백준 13222번 브론즈 3 https://www.acmicpc.net/problem/13222 13222번: Matches The first line of input contains an integer N (1 ≤ N ≤ 50), the number of matches on the floor, and two integers W and H, the dimensions of the box (1 ≤ W ≤ 100, 1 ≤ H ≤ 100). Each of the following N lines contains a single integer between 1 an www.acmicpc.net 문제 보기 분류: 수학, 기하학, 피타고라스 정리 문제 풀기 직사각형 바닥에서 가능한 최대 길이인 대각선 길이를 계..

공부하기/백준 2023.08.07

[Java] 백준 풀기 16486 - 운동장 한 바퀴

자바 백준 16486번 브론즈 4 https://www.acmicpc.net/problem/16486 16486번: 운동장 한 바퀴 첫째 줄에 d1의 값이 주어진다. 둘째 줄에는 d2의 값이 주어진다. (d1, d2의 값은 100,000 이하의 양의 정수) www.acmicpc.net 문제 보기 분류: 수학, 기하학 문제 풀기 문제에서 주어진 PI 값 3.141592를 적용하여 온전한 원의 둘레를 구하고, 두 개의 직선 구간을 더하여 결과를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int d1 = sc.n..

공부하기/백준 2023.08.06

[Java] 백준 풀기 7510 - 고급 수학

자바 백준 7510번 브론즈 3 https://www.acmicpc.net/problem/7510 7510번: 고급 수학 준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없 www.acmicpc.net 문제 보기 분류: 수학, 기하학, 피타고라스 정리 문제 풀기 각 테이스마다 숫자 세 개를 array에 입력 받고, 오름차순으로 정렬을 한다. 정렬된 array에서 Math.pow()를 사용하여 세 변의 관계를 계산한다. 피타고라스 정리를 만족할 때와 그렇지 않을때 각각 메시지를 출력한다. 코드 보기 import java.util.Scanner; import java.u..

공부하기/백준 2023.08.05

[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