공부하기/백준 500

[Java] 백준 풀기 1924 - 2007년

자바 백준 1924번 브론즈 1 https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 Zeller's congruence 를 사용하여 해당 요일을 찾을 수 있다. 1월 또는 2월의 경우 연은 1 을 빼고 월은 12 를 더하여 식에 대입한다. 0 부터 6 까지 숫자로 표현된 요일을 해당 문자로 변환하여 출력한다. 코드 보기 import java.util.Scanner; ..

공부하기/백준 2023.06.08

[Java] 백준 풀기 10988 - 팰린드롬인지 확인하기

자바 백준 10988번 브론즈 2 https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 입력받은 문자의 길이를 저장한다. 문자 길이의 절반만큼 for loop 을 시행하면서 chatAt() 을 사용하여 문자의 끝단부터 두 개씩 같은 char() 인지 비교를 한다. 서로 같지 않은 경우가 발생하면 false 를 return 하고, 그렇지 않고 for loop 가 완료되면 true 를 return 한다. 반환된 true 또는 false 에 따라 1 또는 0 을 출력..

공부하기/백준 2023.06.07

[Java] 백준 풀기 1463 - 1로 만들기

자바 백준 1463번 실버 3 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 보기 분류: 다이나믹 프로그래밍 문제 풀기 다이나믹 프로그램으로 저장할 N + 1 개 배열을 생성한다. 2 부터 N 까지 순차적으로 각 연산이 이루어질때 최소 연산의 횟수를 찾고 지속적으로 저장한다. 이는 1을 빼는 연산의 횟수를 저장하고, 만약 i 가 2 또는 3 으로 나누어 떨어지게 되면 그 횟수를 찾아 dp[i] 와 비교하여 최소값으로 다시 저장한다. N 까지 모든 경우를 확인했을 때 dp[N] 에 저장된 최소 연산 횟수를 반환하여 출력한다. 코드 보기 import ja..

공부하기/백준 2023.06.06

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

자바 백준 4153번 브론즈 3 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 보기 분류: 수학, 기하학, 피타고라스 정리 문제 풀기 입력받은 세 숫자가 0, 0, 0 이면 0 + 0 + 0 == 을 만족하여 while loop 를 빠져나가게 한다. 그 외의 30,000 보다 작은 양의 정수에 대해서는 isRightTriangle() 메서드를 실행시킨다. isRightTriangle() 메서드는 크기 정렬이 되지 않은 세 수를 Array 에 입력 받아 오..

공부하기/백준 2023.06.05

[Java] 백준 풀기 11719 - 그대로 출력하기 2

자바 백준 11719번 브론즈 3 https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 while 을 통해 지속적인 입력을 받으면서 Scanner() 의 hasNextLine() 을 통해 다음 입력이 없으면 최종 문자를 출력하도록 작성한다. 최종 문자들은 String 과 달리 누적 문자기록이 가능한 StringBulider 를 이용한다. StringBuilder 를 통해 output 을..

공부하기/백준 2023.06.04

[Java] 백준 풀기 2741 - N 찍기

자바 백준 2741번 브론즈 5 https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 주어진 숫자만큼 for loop 을 돌리면서 1 부터 N 까지 step +1 을 적용하여 모든 수를 답안 형식에 맞게 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main (String args[]) { Scanner sc = new Scanner(System.in); int inputNum = sc.nextInt(); outputNumbersF..

공부하기/백준 2023.06.03

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