공부하기 510

[Java] 백준 풀기 2501 - 약수 구하기

자바 백준 2501번 브론즈 3 https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 문제 보기 분류: 수학, 브루트포스 알고리즘 문제 풀기 주어진 N 을 1 부터 N 까지 나누었을때 나머지가 0 인 숫자를 ArrayList 로 저장한다. 지정한 K 보다 ArrayList 에 저장된 숫자가 작거나 없을 경우를 제외하고, K 번째 숫자인 index K-1 을 ArrayList 에서 찾아 출력한다. 코드 보기 import java.util.Scanner; import java.util.List; import java.util...

공부하기/백준 2023.06.01

[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] 백준 풀기 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

[Java] 백준 풀기 14761 - 스시

자바 백준 20494번 브론즈 2 https://www.acmicpc.net/problem/20494 20494번: 스시 천하제일코딩대회를 마치고 $N$명의 운영진은 회전 초밥집으로 회식을 가서 스시를 먹기로 했다. 이 식당에는 총 26가지의 스시가 있으며, 이는 문자 A부터 Z까지에 대응하여 생각할 수 있다. 회 www.acmicpc.net 문제 보기 분류: 수학, 구현, 문자열, 애드 혹 문제 풀기 n 번째 줄까지 각각의 문자열 길이를 구한 후 모두 합산한 결과를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in)..

공부하기/백준 2023.05.23