자바 372

[Java] 백준 풀기 11653 - 소인수분해

자바 백준 11653 브론즈 1 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 소수 판정 문제 풀기 소인수분해는 주어진 정수 N을 소수인 i로 나누며, 나눌 수 없을 때까지 반복한다. 이때, i는 2부터 제곱근까지 검사한다. N이 1인 경우 바로 return 한다. for loop과 while loop을 통해 정수 N을 나누어 떨어지는 소인수 i를 모두 출력하고, 최종 남은 소인수를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(..

공부하기/백준 2023.07.24

[Java] 백준 풀기 2609 - 최대공약수와 최소공배수

자바 백준 2609번 브론즈 1 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 유클리드 호제법 문제 풀기 유클리드 호제법을 이용하여 최대공약수를 구한다. Wikipedia: 유클리드 호제법 두 수가 아래와 같이 정해졌을때, 18 24 num2가 0이 될때까지, 함수의 파라미터 num1과 num2의 위치 바꿈과 동시에 num1 % num2의 나머지를 구하는 재귀함수를 돌린다. num1: 18, num2: 24 num1: 24, num2: 18 num1: 18, num2: 6 n..

공부하기/백준 2023.07.23

[Java] 백준 풀기 1485 - 정사각형

자바 백준 1485번 실버 3 https://www.acmicpc.net/problem/1485 1485번: 정사각형 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 네 줄로 이루어져 있으며, 점의 좌표가 한 줄에 하나씩 주어진다. 점의 좌표는 -100,000보다 크거나 같고, 100,000보다 작거나 같 www.acmicpc.net 문제 보기 분류: 정렬, 기하학 문제 풀기 네 개의 점을 입력받고 두 점사이의 거리를 모두 계산하여 네 변과 두 대각선의 길이를 각각 비교하여 정사각형을 판단한다. 네 개의 좌표를 통해 총 6가지의 두 점 사이의 거리를 찾을 수 있다. 이 결과를 오름차순 정렬하여 짧은 4개가 같고 긴 2개가 같으면 정사각형 조건임을 이용한다. 코드 보기 import ja..

공부하기/백준 2023.07.22

[Java] 백준 풀기 15904 - UCPC는 무엇의 약자일까?

자바 백준 15904번 실버 5 https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 문제 보기 분류: 문자열, 그리디 알고리즘 문제 풀기 입력된 문자열에 대해 indexOf()를 사용하여 char 타입으로 대문자 `U`, `C`, `P`, `C`의 index를 찾는다. 각 indexOf()는 존재하는 문자를 찾으면 그 문자의 `index`를 반환하고 그렇지 않으면 `-1`을 반환한다. 첫 번째 문자의 탐색이 끝나면 그 ind..

공부하기/백준 2023.07.21

[Java] 백준 풀기 11652 - 카드

자바 백준 11652번 실버 4 https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 문제 보기 분류: 자료 구조, 정렬, 해시를 사용한 집합과 맵 문제 풀기 입력 받은 데이터의 빈도수를 기록하기 위해서 HashMap을 이용한다. key는 입력으로 들어오는 숫자이고, value는 입력된 숫자의 횟수이다. main과 findMostFrequentNumber으로 메서드를 분리하였고 따라서 입력값을 ArrayList에 따로 저장하여 넘겨준다. Has..

공부하기/백준 2023.07.20

[Java] 백준 풀기 11557 - Yangjojang of The Year

자바 백준 11557번 브론즈 1 https://www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net 문제 보기 분류: 구현, 정렬 문제 풀기 테스트 개수 만큼 for loop을 실행시킨다. 학교의 이름과 술 소비량을 입력받으면서 소비량이 이전에 입력 받은 값보다 큰지 확인을 하고 만약 크다면 그 값과 학교 이름을 저장한다. 모든 학교와 소비량이 입력되면 최대 소비량 데이터를 얻을 수 있다. 최대값 찾기 메서드의 최종 데이터를 Abstr..

공부하기/백준 2023.07.19

[Java] 백준 풀기 11726 - 2xN 타일링

자바 백준 11726번 실버 3 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 보기 분류: 다이나믹 프로그래밍 문제 풀기 지속적으로 타일을 채우는 방법은 이전 타일을 채우는 방법의 연장선이기 때문에 Dynamic Programming을 이용하여 방법의 개수를 구한다. n은 최대 1000까지 주어졌으므로 1001개의 array를 지정하여 모든 답을 저장하고 n에 대한 답만 출력한다. n = 1 일때 방법의 수는 1 n = 2 일때 방법의 수는 2 이 두 초기화..

공부하기/백준 2023.07.18

[Java] 백준 풀기 2530 - 인공지능 시계

자바 백준 2530번 브론즈 4 https://www.acmicpc.net/problem/2530 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 문제 보기 분류: 수학, 사칙연산 문제 풀기 쉬운 이해를 위해 순차적으로 hour과 minute를 second로 변환하고 조리 시간을 더하여 총 시간을 seconds로 만든다. 조리 후 시각을 구하기 위해 hour은 총 seconds를 60분 x 60초로 나눈 후 24시로 나눈 나머지로 계산하고, minute는 총 seconds를 60분 x..

공부하기/백준 2023.07.17

[Java] compareTo() 메서드 이해하기

Java에서는 객체 간 비교를 위해 compareTo() 메서드를 제공한다. 이 메서드는 두 객체를 비교하여 정렬 순서를 결정하거나, 두 객체가 동일한지 확인하는 데 사용된다. compareTo() 메서드의 사용 방법과 예제 코드를 소개하고, 문자열 뿐만 아니라 숫자, 날짜 등 모든 비교 경우에 대한 동작에 대해 알아본다. compareTo() 메서드 반환 값 0을 반환: 두 객체가 동일한 경우 음수를 반환: 기준 객체가 비교대상 객체보다 작은 경우 양수를 반환: 기준 객체가 비교 대상 객체보다 큰 경우 compareTo() 예제 코드 import java.time.LocalDate; public class CompareToExample { public static void main(String[] ar..

알아가기/Java 2023.07.16

[Java] 백준 풀기 10811 - 바구니 뒤집기

자바 백준 10811번 브론즈 2 https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 문제 보기 분류: 구현, 시뮬레이션 문제 풀기 배열에 1부터 N까지 순차적으로 숫자를 저장하여 초기화 한다. i와 j를 입력받고 reverseBaskets() 메서드를 시행한다. reverseBaskets() 메서드는 i와 j로 지정된 구간의 양 끝의 수를 서로 바꾸고, 그 다음 i + 1, j - 1 교환, i + 2, j - 2 교환하는 방식으로 whi..

공부하기/백준 2023.07.15