자바 372

[Java] 백준 풀기 1977 - 완전 제곱수

자바 백준 1977번 브론즈 2 https://www.acmicpc.net/problem/1977 1977번: 완전제곱수 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완 www.acmicpc.net 문제 보기 분류: 수학, 구현, 브루트포스 알고리즘 문제 풀기 주어진 범위의 수를 하나씩 선택하여 Math.sqrt() 를 이용하여 제곱근을 구한다. 완전 제곱수인지 확인하기 위해 구한 제곱근을 int 타입으로 변경하고 제곱한 값이 초기에 선택한 값과 일치하는지 확인한다. 만약 일치한다면 완전 제곱수이므로 최솟값 또는 누적합으로 저장을 한다. 완전..

공부하기/백준 2023.09.19

[Java] 백준 풀기 20115 - 에너지 드링크

자바 백준 20115번 실버 3 https://www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 문제 보기 분류: 그리디 알고리즘 문제 풀기 두 개의 드링크를 비교하여 합칠 때 많은 양을 반으로 나누어 합치게 되면 초기 많은 양의 캔 보다 작아진다. 따라서 모든 두 비교 대상에 대해 적은 양 만을 선택해 합쳐야 한다. 즉, 모든 드링크에서 가장 많은 것만 온전히 합치고 나머지들은 반으로 나누어 합치는 모습이 되므로 정렬을 한 후 최댓값 그리고 나머지로 분리하여..

공부하기/백준 2023.09.13

[Java] 백준 풀기 11256 - 사탕

자바 백준 11256번 실버 5 https://www.acmicpc.net/problem/11256 11256번: 사탕 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰 www.acmicpc.net 문제 보기 분류: 그리디 알고리즘, 정렬 문제 풀기 상자의 가로 세로를 입력받아 크기를 구하여 List에 저장하고 List의 value를 오름차순 정렬한다. 정렬된 List의 마지막 value부터 가져와 전체 사탕의 개수에서 차감한다. 이 작업을 사탕의 개수가 0이 될 때까지 반복하여 그 횟수인 필요 상자의 최소 개수를 출력한다. 코드 보기 import java.util..

공부하기/백준 2023.09.12

[Java] 백준 풀기 28014 - 첨탑 밀어서 부수기

자바 백준 28014번 브론즈 3 https://www.acmicpc.net/problem/28014 28014번: 첨탑 밀어서 부수기 첫째 줄에 첨탑의 개수 $N$이 주어진다. $(1\leq N\leq 5\,000\,000)$ 둘째 줄에는 앞에서부터 차례대로 첨탑의 높이 $H_1, H_2, \cdots, H_n (1\leq H_i\leq 1\,000\,000)$ 이 주어진다. 입력으로 주어지는 모든 수는 정 www.acmicpc.net 문제 보기 분류: 그리디 알고리즘 문제 풀기 모든 첨탑의 높이를 StringTokenizer와 BufferdReader를 이용하여 array에 입력받는다. index = 1 부터 시작하여 이전 index의 value가 현재 index의 value보다 작거나 같으면 카운트..

공부하기/백준 2023.09.11

[Java] 백준 풀기 5338 - 마이크로소프트 로고

자바 백준 5338번 브론즈 5 https://www.acmicpc.net/problem/5338 5338번: 마이크로소프트 로고 마이크로소프트 로고를 예제 출력처럼 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 예제 출력 형식에 맞춰 그대로 한 줄 한 줄 출력한다. https://text-compare.com/ Text Compare! - An online diff tool that can find the difference between two text files text-compare.com 문자 실수를 줄이고자 한다면 text compare 을 이용하여 비교 확인한다. 코드 보기 public class Main { public static void ..

공부하기/백준 2023.09.10

[Java] 백준 풀기 14650 - 걷다보니 신천역 삼 (Small)

자바 백준 14650번 실버 2 https://www.acmicpc.net/problem/14650 14650번: 걷다보니 신천역 삼 (Small) 욱제는 ‘삼’이란 음절을 참 좋아한다. 인삼, 홍삼, 해삼, 삼성, 이춘삼(李春森), 삼식이, 삼시세끼, ㄴㄴ 그거 안 삼, 삼과 죽음, 알았삼, 금강삼도 식후경, 걷다보니 신천역 삼, 그리고 특히 일 www.acmicpc.net 문제 보기 분류: 수학, 다이나믹 프로그래밍, 브루트포스 알고리즘, 정수론 문제 풀기 재귀 함수를 사용하는 방법으로 문제를 해결한다. 첫째 숫자는 0이 불가능하므로 1, 2를 각각 시작 숫자로 하여 뒤에 0, 1, 2를 붙여나간다. N을 하나씩 줄여나가며.. 재귀 함수를 돌때마다 N은 1씩 줄어들고 N이 1이 되었을 때 생성된 숫자..

공부하기/백준 2023.09.09

[Java] 백준 풀기 1711 - 직각삼각형

자바 백준 1711번 골드 5 https://www.acmicpc.net/problem/1711 1711번: 직각삼각형 첫째 줄에 점의 개수 N(3 ≤ N ≤ 1,500)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 점의 x좌표와 y좌표가 빈 칸을 사이에 두고 주어진다. 좌표값은 절댓값이 1,000,000,000을 넘지 않는 정수이며, 주 www.acmicpc.net 문제 보기 분류: 브루트포스 알고리즘, 기하학, 피타고라스 정리 문제 풀기 이 문제는 그다지 좋아하지 않는 시간초과 해결이 관건이기에 별로인 문제이다. Scanner를 사용하여 제출해 보진 않았지만 분명 시간초과 걸렸을 것이다. 이를 피하기 위해 BufferedReader를 사용한다. BufferedReader를 이용하여 주어진 모든 좌표..

공부하기/백준 2023.09.05

[Java] 백준 풀기 2754 - 학점 계산

백준 자바 2754번 브론즈 5 https://www.acmicpc.net/problem/2754 2754번: 학점계산 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. A+: 4.3, A0: 4.0, A-: 3.7 B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 해시맵을 이용하여 성적과 일치하는 평점을 각각 저장한다. map.get() 을 이용하여 해당 성적의 평점을 가져와 출력한다. 코드 보기 import java.util.Scanner; import java.util.Map; impor..

공부하기/백준 2023.09.04

[Java] 백준 풀기 2523 - 별 찍기 13

자바 백준 2523번 브론즈 3 https://www.acmicpc.net/problem/2523 2523번: 별 찍기 - 13 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 repeat() 메서드를 이용하여 반복 별을 찍는다. 각 줄마다 찍어야 하는 별의 개수는 for loop의 i를 이용하여 변경한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 1; i 0; i--) { Syst..

공부하기/백준 2023.09.02

[Java] 백준 풀기 14487 - 욱제는 효도쟁이야

자바 백준 14487번 브론즈 2 https://www.acmicpc.net/problem/14487 14487번: 욱제는 효도쟁이야!! 욱제는 KOI를 망친 기념으로 부모님과 함께 코드게이트 섬으로 여행을 떠났다. 코드게이트 섬에는 오징어로 유명한 준오마을(심술쟁이 해커 임준오 아님), 밥으로 유명한 재훈마을, 영중마을 등 www.acmicpc.net 문제 보기 분류: 구현, 그리디 알고리즘 문제 풀기 서로 제일 이동 비용이 큰 두 마을을 시작과 끝으로 잡으면 그 두 마을을 연결하는 길은 가지 않아도 되며 최소한의 이동경비를 기대할 수 있다. 따라서 제일 이동 비용이 큰 경우를 제외한 나머지 이동 경로 비용만 합하면 되기 때문에 오름차순 정렬을 하여 마지막 index만 빼고 모두 누적합한다. 코드 보기..

공부하기/백준 2023.09.01