정수론 13

[Java] 백준 풀기 11576 - Base Conversion

자바 백준 11576번 실버 5 https://www.acmicpc.net/problem/11576 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 www.acmicpc.net 문제 보기 분류: 수학, 구현, 정수론 코드 풀이 import java.util.Scanner; import java.util.ArrayList; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 입력으로부터 A진법, ..

공부하기/백준 2024.02.27

[Java] 백준 풀기 5347 - LCM

자바 백준 5347번 실버 5 https://www.acmicpc.net/problem/5347 5347번: LCM 첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 유클리드 호제법 코드 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 테스트 케이스의 개수 입력 sc.nextLine(); // 개행 문자..

공부하기/백준 2024.02.21

[Java] 백준 풀기 2089 - -2진수

자바 백준 2089번 실버 2 https://www.acmicpc.net/problem/2089 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110 www.acmicpc.net 문제 보기 분류: 수학, 정수론 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int..

공부하기/백준 2024.01.31

[Java] 백준 풀기 14490 - 백대열

자바 백준 14490번 실버 5 https://www.acmicpc.net/problem/14490 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 문제 보기 분류: 수학, 문자열, 정수론, 유클리드 호제법 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 입력 String[] input = sc.next().split(":"); int n = Integer.parseInt(input[0]); int m = Integer.parseIn..

공부하기/백준 2024.01.09

[Java] 백준 풀기 6359 - 만취한 상범

자바 백준 6359번 브론즈 2 https://www.acmicpc.net/problem/6359 6359번: 만취한 상범 한 줄에 한 개씩 각 테스트 케이스의 답, 즉 몇 명이 탈출할 수 있는지를 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 정수론, 시뮬레이션 코드 보기 import java.util.Scanner; import java.util.HashMap; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 테스트 케이스의 개수를 입력 int T = sc.nextInt(); // 테스트 케이스 개수만큼 반복 for (int t = 0; t < ..

공부하기/백준 2023.11.28

[Java] 백준 풀기 1735 - 분수 합

자바 백준 1735번 실버 3 https://www.acmicpc.net/problem/1735 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 유클리드 호제법 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 두 분수의 분자와 분모를 입력 int a1 = sc.nextInt(); // 첫 번째 분수의 분자 int b1 = sc.nextInt(..

공부하기/백준 2023.10.21

[Python] 백준 풀기 1934 - 최소공배수

파이썬 백준 1934번 브론즈 1 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 문제 보기 분류: 수학, 정수론, 유클리드 호제법 코드 보기 import sys inputdata = sys.stdin.readline # 두 수의 최대 공약수를 계산하는 함수 def greatestCommonDivisor(num1, num2): while num2: num1, num2 = num2, num1 % num2 return num1 ..

공부하기/백준 2023.10.08

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