자바 372

[Java] 백준 풀기 25305 - 커트라인

자바 백준 25305번 브론즈 2 https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 문제 보기 분류: 구현, 정렬 문제 풀기 주어진 숫자만큼 for loop 을 돌려 하나씩 ArrayList 에 입력한다. 모든 ArrayList 에 입력이 끝나면 Collections.reverseOrder() 를 사용하여 내림차순 정렬을 시킨다. 내림차순 정렬된 ArrayList 에서 index 가 k-1 인 값을 뽑아 출력한다. 코드 보기 import java.util.Scanner; import java.util.List; im..

공부하기/백준 2023.06.02

[Java] 백준 풀기 5585 - 거스름돈

자바 백준 5585번 브론즈 2 https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 문제 보기 구현: 그리디 알고리즘 문제 풀기 잔돈의 종류중 가장 큰 값으로 나누어 그 나머지를 임시 저장하고 그 몫인 잔돈의 개수를 합한다. 임시 저장한 나머지를 그 다음 크기의 잔돈으로 나누어 그 나머지를 임시 저장하고 그 몫인 잔돈의 개수를 누적하여 더한다. 이 과정을 제일 작은 잔돈이 나올때까지 반복하며 각 잔돈의 개수를 누적해 합한뒤 결..

공부하기/백준 2023.05.31

[Java] 백준 풀기 10953 - A+B 6

자바 백준 10953번 브론즈 3 https://www.acmicpc.net/problem/10953 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 수학, 문자열, 사칙연산, 파싱 문제 풀기 테스트 케이스만큼 각 줄을 문자열로 입력받고 " , " 로 분리하여 array 에 저장한다. array 에 저장된 두 개의 String 타입의 숫자를 Integer.parseInt() 를 통해 Integer 타입으로 변환하고 두 수를 더한다. 코드 보기 import java.util.Scanner; public class Main { public static void main (String args[]) { Sc..

공부하기/백준 2023.05.30

[Java] 백준 풀기 10171 - 고양이

자바 백준 10171번 브론즈 5 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 자바에서 역슬래시 " \ " 는 이스케이프 문자로 사용되므로, 출력할 때 두 번을 입력해야 원래 문자로 인식된다. 코드 보기 public class Main { public static void main(String args[]) { System.out.println("\\ /\\"); System.out.println(" ) ( ')"); System.out.println("( / )"); System.out.print(" \\(__)|"); } } /* \ /\ ) ( ') ( ..

공부하기/백준 2023.05.29

[Java] 백준 풀기 2839 - 설탕 배달

자바 백준 2839번 실버 4 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 보기 분류: 수학, 다이나믹 프로그래밍, 그리디 알고리즘 문제 풀기 설탕 봉지의 개수를 가장 적게 하기 위해서는 5kg 의 개수가 가능한 최대여야 한다. 따라서 주어진 무게에서 5kg 을 나눈 몫을 최대로 두고 5kg 의 봉지를 하나씩 제거하면서 그 남의 무게가 3kg 으로 나누어 떨어지는지 확인한다. 그렇게 나누어떨어지는 시점이 최소 봉지 개수의 반환이며, 남은 무게가 ..

공부하기/백준 2023.05.28

[Java] 중복 없는 해시 HashSet

HashSet HashSet은 Java 컬렉션 프레임워크에서 제공하는 클래스로, 중복된 요소를 허용하지 않는 집합(Set)을 구현한 것이다. HashSet은 해시 테이블(Hash Table)을 사용하여 요소를 저장하며, O(1)의 상수 시간 복잡도로 요소에 대한 삽입, 삭제, 검색 작업을 수행할 수 있다. HashSet 특징 new HashSet()는 기본 생성자를 호출하여 HashSet 객체를 생성한다. 는 제네릭(Generic) 타입을 나타내는 것으로, 여기서는 HashSet이 저장할 요소의 타입을 지정하는 역할을 한다. 예를 들어, new HashSet()는 String 요소를 저장하는 HashSet 객체를 생성한다. HashSet은 중복된 요소를 허용하지 않으므로, 요소의 중복 여부를 판단하기 위..

알아가기/Java 2023.05.28

[Java] 백준 풀기 11478 - 서로 다른 부분 문자열의 개수

자바 백준 11478번 실버 3 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 문제 보기 분류: 자료 구조, 문자열, 해시를 사용한 집학과 맵, 트리를 사용한 집합과 맵 문제 풀기 입력 받은 문자의 길이를 length() 로 확인하여 저장한다. 서로 다른 부분 문자열을 저장할 HashSet 을 생성한다. 이중 for loop 을 통해 문자열의 처음과 끝을 지정하여 substring() 으로 모든 경우에 대해 분리한다. 이 분리한 문자열을 HashSet() 으로 생성한 mySet 에 추가한다. HashSet 특성..

공부하기/백준 2023.05.27

[Java] 백준 풀기 20291 - 파일 정리

자바 백준 20291번 실버 3 https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 문제 보기 분류: 자료 구조, 문자열, 정렬, 해시를 사용한 집학과 맵, 파싱 문제 풀기 Array 를 사용할 수 있지만 ArrayList 를 사용해 보고 싶어서 방향을 이쪽으로 잡았다. 해시맵을 사용하지 않아 조건문이 지저분한 경향이 있는데 이번엔 머리에서 떠오르는 대로 답안을 제출하고 해시맵 사용은 다음으로 넘긴다. n 개 만큼 파일 이름을 입력 받으면서 확장자만 분리..

공부하기/백준 2023.05.26

[Java] 백준 풀기 17450 - 과자 사기

자바 백준 17450번 브론즈 3 https://www.acmicpc.net/problem/17450 17450번: 과자 사기 입력은 총 3개의 줄로 이루어지며, 각 줄에는 S, N, U의 순서대로 한 봉지의 가격과 무게가 띄어쓰기를 사이에 두고 주어진다. 모든 입력값은 1 이상 1,000 이하의 정수이다. 세 종류의 과자의 가성 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 최고의 가성비를 저장할 변수와 그 과자의 이름을 저장할 변수를 준비한다. 3 개의 과자가 준비되어 있기에 3 번의 for loop 을 돌리면서 가격과 무게를 입력 받는다. 5000 원이 넘어가는 경우 500 원 할인을 생각하여 조건문을 분기시키고 해당 과자의 가성비를 계산한다. 계산된 가성비가 최대..

공부하기/백준 2023.05.25