1692 : 곱셈
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a, b;
a = Integer.parseInt(in.readLine());
b = Integer.parseInt(in.readLine());
int n1, n2, n3; //1의자리수 10의자리수 100자리수
n1 = b % 10;
n2 = b / 10 % 10;
n3 = b / 100;
bw.write(String.format("%d\n", a * n1));
bw.write(String.format("%d\n", a * n2));
bw.write(String.format("%d\n", a * n3));
bw.write(String.format("%d\n", a * b));
bw.flush();
}
}
곱셈 과정을 출력하면 되는 문제.
1430 : 숫자의 개수
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a, b, c;
a = Integer.parseInt(in.readLine());
b = Integer.parseInt(in.readLine());
c = Integer.parseInt(in.readLine());
int gop = a * b * c;
int arr[] = new int [11];
int i;
while(true) {
arr[gop % 10]++;
gop = gop / 10;
if (gop == 0) break;
}
for (i = 0; i < 10; i++) {
bw.write(String.format("%d\n", arr[i]));
bw.flush();
}
}
}
주어진 숫자를 곱해, 0~9까지의 숫자가 몇개가 쓰였는지 출력하는 문제.
1071 : 약수와 배수
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st ;
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n;
int arr[] = new int [51];
int m;
int i;
n = Integer.parseInt(in.readLine());
st = new StringTokenizer(in.readLine());
for (i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
m = Integer.parseInt(in.readLine());
int yaksu = 0;
int baesu = 0;
for (i = 0; i < n; i++) {
if (m % arr[i] == 0) {
yaksu += arr[i];
}
if (arr[i] % m == 0) {
baesu += arr[i];
}
}
bw.write(String.format("%d\n", yaksu));
bw.write(String.format("%d\n", baesu));
bw.flush();
}
}
숫자를 입력받아 그 뒤에 입력받는 m의 정수와 배수를 찾는데, 입력받은 숫자가 해당할시 합을 출력하는 문제.
1402 : 약수 구하기
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n, k;
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());
int i, j;
int arr[] = new int [10001];
int cnt = 1;
for (i = 1; i <= n; i++) {
if (n % i == 0) {
arr[cnt++] = i;
}
}
if (arr[k] == 0) {
bw.write("0");
bw.flush();
}
else {
bw.write(String.format("%d ", arr[k]));
bw.flush();
}
}
}
n과 m을 입력받아 n의 약수 중 m번째에 있는 약수를 출력하는 문제.
2809 : 약수
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n;
int i;
n = Integer.parseInt(st.nextToken());
int arr[] = new int [10001];
int cnt=0;
for (i = 1; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
bw.write(String.format("%d ", i));
if(n/i != i) arr[cnt++] = n/i;
}
}
for(i=cnt - 1; i >= 0; i--) {
bw.write(String.format("%d ", arr[i]));
}
bw.flush();
}
}
숫자를 입력받아 그 숫자의 약수를 모두 출력하면 되는 간단한 문제.
1658 : 최대공약수와최소공배수
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a, b;
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
int choide = 1;
int choiso = 1;
int i;
for (i = 1; i <= a; i++) {
if (a % i == 0 && b % i == 0) {
choide = i;
}
}
for (i = a; i <= a*b; i += a) {
if (i % a == 0 && i % b == 0) {
choiso = i;
break;
}
}
bw.write(String.format("%d\n%d", choide, choiso));
bw.flush();
}
}
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 출력하면 되는 간단한 문제
1002 : 최대공약수, 최소공배수
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n;
n = Integer.parseInt(st.nextToken());
int arr[] = new int [n];
int i;
st = new StringTokenizer(in.readLine());
for (i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int g = arr[0];
int l = arr[0];
for (i = 1; i < n; i++) {
g = gcd(g, arr[i]);
l = lcm(l, arr[i]);
}
bw.write(String.format("%d %d", g, l));
bw.flush();
}
private static int lcm(int a, int b) {
// TODO Auto-generated method stub
return a * b / gcd(a, b);
}
private static int gcd(int a, int b) {
// TODO Auto-generated method stub
if (a % b == 0) return b;
return gcd(b, a%b);
}
}
여러 수를 입력받아 최대공약수와 최소공배수를 출력하면 되는 문제
'정올문제소스코드' 카테고리의 다른 글
Jungol_Beginner_도형만들기1 (0) | 2022.12.24 |
---|---|
2567 : 싸이클 (0) | 2022.03.18 |
1490 : 다음 조합(next combination) (0) | 2022.03.18 |
2817 : 로또(Lotto) (0) | 2022.03.18 |
1021 : 장난감조립 (0) | 2021.12.05 |