정보올림피아드 문제풀이11 1002 최대공약수 최소공배수 최대공약수와 최소공배수를 구하는공식은 누구나 알고있을것이다. 하지만 코드에서는 단순히 2개의 숫자를 다루는것이 아닌 3개이상의 숫자들의 최대공약수랑 최소공배수를 구하는부분인데 ... 어렵다.. 푸는공식은 다음과 같다 두 개의 수 A와 B의 최대공약수를 D라 하면, 세 개의 수 A, B, C의 최대공약수는 D와 C의 최대공약수와 같다. 이런 규칙을 이용하면 두 수의 최대공약수를 구하는 함수 한 개만으로도 여러 수의 최대공약수를 구할 수 있다 그리고 최소공배수는 A와 B의 곱을 최대공약수로 나누어주면되서 로직을 짜는것은 그렇게 어렵지 않았다. 코드는 다음과 같다. import java.util.Arrays; import java.util.Scanner; public class O1002 { public st.. 2023. 4. 3. 약수와 배수 숫자를 입력을 할 때 공백을 가지고 있는 데이터들을 String으로 변환을 시켜주고 배열에 하나씩 넣어줘서 3번째 숫자와 하나씩 비교를 해주면서 약수와 배수를 알아가는 방식이다. 약수나 배수는 큰거에서 작은숫자로 나누면 나머지가 무조건 0이다 그러므로 숫자의 크기를 비교하고 큰거에서 작은숫자로 나눠주면 나머지가 0이 나오는값들을 카운팅해주면 끝이난다 . 주의점 if를 쓰고 else를 쓰면 겹치는숫자가 핻 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int cnt = 0; int cnt2 = 0; int num = Integer.p.. 2023. 3. 28. 숫자의 갯수 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int arr2[] = new int[10]; int num1 = sc.nextInt(); int num2 = sc.nextInt(); int num3 = sc.nextInt(); int result = num1 * num2 * num3; String re = Integer.toString(result); for (int i = 0; i < re.length(); i++) { for (char j = '0'; j 2023. 3. 28. 곱셈 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1= sc.nextInt(); int num2= sc.nextInt(); int num3 = num1 * (num2 % 10); int num4 = num1 * ((num2 - (num2 % 10)) % 100) / 10; int num5 = num1 * (num2 / 100); int num6 = num1 * num2; System.out.println(num3); System.out.println(num4); System.out.println(num5); System.o.. 2023. 3. 28. 숫자사각형 4 종류 1. 열이 한번바귈때마다 숫자를 높여주면된다. 종류 2. 전문제와 똑같이 열이 바뀔때마다 숫자를 1로 초기화해주어 배열에 넣어주는 방식으로 했다 종료 3. 하나의 열에 전부 12345로 초기화해주고 각 열에 그 숫자만큼 더하게끔 해주었다. import java.util.Scanner; public class Main { public static void main(String[] args) { int cnt = 1; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int arr[][] = new int[n][n]; switch (m) { case 1: for (int i = 0; i < n; i++) { .. 2023. 3. 28. 숫자사각형 2 이번문제는 가로로 순서대로 숫자를 대입해나가는 방식인데 열이 홀수번일 때마다 거꾸로 출력이 되는것을 발견할 수 있다 그방식대로 if 조건문을 걸어서 해결을 했다 홀수 짝수 구별법은 나머지값으로 구분하여주었다 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[][] arr = new int[n][m]; int num = 1; for (int i = 0; i < n; i++) { if(i % 2 == 0) { for (int j = 0; j < m; j+.. 2023. 3. 28. 이전 1 2 다음