공부하기/백준 500

[Java] 백준 풀기 9933 - 민균이의 비밀번호

자바 백준 9933번 브론즈 1 https://www.acmicpc.net/problem/9933 9933번: 민균이의 비밀번호 첫째 줄에 단어의 수 N (2 ≤ N ≤ 100)이 주어진다. 다음 N개 줄에는 파일에 적혀있는 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있으며, 길이는 2보다 크고 14보다 작은 www.acmicpc.net 문제 보기 분류: 구현, 자료 구조, 문자열, 해시를 사용한 집합과 맵 코드 보기 import java.util.Scanner; import java.util.ArrayList; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.i..

공부하기/백준 2023.09.25

[Java] 백준 풀기 9465 - 스티커

자바 백준 9465번 실버 1 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 문제 보기 분류: 다이나믹 프로그래밍 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 테스트 케이스 개수 입력 int T = sc.nextInt(); for (int t..

공부하기/백준 2023.09.24

[Java] 백준 풀기 2556 - 별 찍기 14

자바 백준 2556번 난이도 0 https://www.acmicpc.net/problem/2556 2556번: 별 찍기 - 14 지금까지 안 나온 별 찍기가 뭐가 있는지 생각해본 후, 별을 적절히 찍으세요. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 입력받은 숫자 n에 대해 n x n 형태의 별을 출력한다. repeat() 함수를 이용하여 한 줄의 별을 n 반복 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { // 입력 받기 위한 Scanner 객체 생성 Scanner sc = new Scanner(System.in); // 사용자로부터 숫자 입력 받기 in..

공부하기/백준 2023.09.23

[Java] 백준 풀기 10990 - 별 찍기 15

자바 백준 10990번 브론즈 3 https://www.acmicpc.net/problem/10990 10990번: 별 찍기 - 15 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 repeat() 함수를 이용하여 한 줄에 반복되는 빈칸과 별을 규칙에 맞게 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { // 입력 받기 위한 Scanner 객체 생성 Scanner sc = new Scanner(System.in); // 사용자로부터 숫자 입력 받기 int n = sc.nextInt(); // 패턴 출력 for (..

공부하기/백준 2023.09.23

[Java] 백준 풀기 17219 - 비밀번호 찾기

자바 백준 17219번 실버 4 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 문제 보기 분류: 자료 구조, 해시를 사용한 집합과 맵 문제 풀기 문제에서 힌트로 주어진 BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 한다. 해시맵을 이용하여 사이트 주소와 비밀번호를 입력받고 get() 메서드를 이용하여 출력해야할 사이트의 비밀번호를 가져온 후 출력한다. 코드 보기 import ja..

공부하기/백준 2023.09.21

[Java] 백준 풀기 1526 - 가장 큰 금민수

자바 백준 1526번 브론즈 1 https://www.acmicpc.net/problem/1526 1526번: 가장 큰 금민수 첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 브루트포스 알고리즘 문제 풀기 주어진 숫자 N부터 시작하여 하나씩 감소시켜 가며 금민수인지 확인한다. 금민수 확인은 1의 자릿수가 4 또는 7인지 확인하여 맞다면 10으로 나눈 몫, 나머지 관계로 다음 자릿수를 확인하고 반복한다. 함수 안의 결과에 따라 true, false를 반환하여 결과를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static vo..

공부하기/백준 2023.09.20

[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