공부하기/백준 500

[Java] 백준 풀기 14264 - 정육각형과 삼각형

자바 백준 14264번 브론즈 3 https://www.acmicpc.net/problem/14264 14264번: 정육각형과 삼각형 첫째 줄에 정육각형 한 변의 길이 L이 주어진다. (1 ≤ L ≤ 1,000,000, L은 정수) www.acmicpc.net 문제 보기 분류: 수학, 기하학 문제 풀기 정육각형에 세 개의 대각선을 긋게 되면 가장 작은 삼각형은 두 인접한 변과 그 사잇각이 120도인 삼각형 뿐이다. 따라서 정육각형의 `한 변`을 밑변으로 하고 `한 변 * Math.sqrt(3) / 2`을 높이로 하는 삼각형의 넓이를 계산한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) ..

공부하기/백준 2023.08.27

[Java] 백준 풀기 13164 - 행복 유치원

자바 백준 13164번 골드 5 https://www.acmicpc.net/problem/13164 13164번: 행복 유치원 입력의 첫 줄에는 유치원에 있는 원생의 수를 나타내는 자연수 N(1 ≤ N ≤ 300,000)과 나누려고 하는 조의 개수를 나타내는 자연수 K(1 ≤ K ≤ N)가 공백으로 구분되어 주어진다. 다음 줄에는 원생들 www.acmicpc.net 문제 보기 분류: 정렬, 그리디 알고리즘 문제 풀기 최소 비용을 만들기 위해서 인접한 키 차이를 확인하고 그 크기가 큰 인원은 서로 분리시켜 각자의 그룹으로 만든다. 따라서 오름차순 정렬된 사람들에서 인접한 두 인원의 키차이를 구하고 이를 오름차순 정렬하여 가장 큰 차이값들부터 제거하는 형식(독자 그룹)으로 그룹을 지정한다. 그 그룹들의 키 ..

공부하기/백준 2023.08.26

[Java] 백준 풀기 2522 - 별 찍기 12

자바 백준 2522번 브론즈 3 https://www.acmicpc.net/problem/2522 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 주어진 규칙에 맞게 for loop을 이용하여 출력한다. 코드 보기 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 = 1; i--) { System.out.print(" ".repeat(n - i)); System...

공부하기/백준 2023.08.24

[Java] 백준 풀기 10820 - 문자열 분석

자바 백준 10820번 브론즈 2 https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 입력이 없을때 까지 문자열을 input에 입력받는다. 입력받은 문자열을 toCharArray()를 이용하여 각각의 문자를 array에 저장한 후 하나씩 빼내어 소문자, 대문자, 숫자 그리고 공백을 다음 메서드를 사용하여 카운트 한다. 소문자: Character.isLowerCase() 대문자: Character.isU..

공부하기/백준 2023.08.22

[Java] 백준 풀기 1448 - 삼각형 만들기

자바 백준 1448번 실버 3 https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 정렬 문제 풀기 입력된 빨대를 array에 모두 저장 후 오름차순 정렬한다. 정렬된 빨대의 길이를 마지막 index부터 시작하여 세 개씩 묶어 삼각형 생성 조건이 되는지 확인한다. 두 변의 길이의 합이 가장 긴 변의 길이보다 길다면 삼각형이 형성이 되고, 변의 길이가 가장 긴 마지막 index부터 조사..

공부하기/백준 2023.08.21

[Java] 백준 풀기 6550 - 부분 문자열

자바 백준 6550번 실버 5 https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 문제 보기 분류: 그리디 알고리즘, 문자열 문제 풀기 문자열 s에서 순서대로 하나씩 문자를 선택하고, for loop로 문자열 t의 index를 하나씩 올려가며 같은 문자가 있는지 확인한다. 같은 문자가 있으면 sIndex를 하나씩 늘려가며, 최종 sIndex와 s 문자열 길이 s.length()가 같으면 "Yes"를 출력한다. 코드 보기 import java.util.S..

공부하기/백준 2023.08.18

[Java] 백준 풀기 11508 - 2+1 세일

자바 백준 11508번 실버 4 https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 문제 보기 분류: 정렬, 그리디 알고리즘 문제 풀기 세 개씩 묶었을때 가장 작은 가격을 제외하고 지불하는 규칙에서 전체 최소 비용을 구하기 위해서는 가격을 정렬하여 제외시킨다. 가격이 정렬된 상태에서 세 개씩 묶을 수 있으면 그 중 가장 작은 가격을 제외하고 누적 합한다. 세 개씩 묶여지지 않은 나머지 가격인 두 개 또는 한 개의 가격은 그대로 합한다. ..

공부하기/백준 2023.08.15

[Java] 백준 풀기 10610 - 30

자바 백준 10610번 실버 4 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 문자열, 정렬, 정수론 문제 풀기 30의 배수가 가능한지 알아보기 위해서 주어진 숫자의 각 자리를 모두 합한 값이 3의 배수가 되는지 확인하고 0이 하나라도 존재하는지 확인한다. String 타입으로 입력 받은 숫자를 charAt() - '0' 방법을 이용하여 int 타입의 숫자로 변경한다. 0부터 9까지 각 숫자의 개수를 ..

공부하기/백준 2023.08.14

[Java] 백준 풀기 10162 - 전자레인지

자바 백준 10162번 브론즈 3 https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 문제 보기 분류: 수학, 구현, 그리디 알고리즘 문제 풀기 주어진 요리 시간에서 가장 긴 시간 5분 (300초) 버튼으로 나누어 그 횟수를 정하고 그 나머지 시간을 다음 버튼으로 넘겨준다. 다음 버튼인 1분 (60초) 버튼으로 나누어 그 횟수를 정하고 나머지 시간을 마지막 버튼으로 넘겨준다. 남은 10초 C버튼으로 나누어 그 횟수를 저장한다. A, B, ..

공부하기/백준 2023.08.13