반응형
2588번: 곱셈
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
www.acmicpc.net
첫 풀이>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String val1 = br.readLine();
String val2 = br.readLine();
String[] values1 = val1.split("");
String[] values2 = val2.split("");
int sum = 0;
int z=0;
for (int i = values2.length - 1; i >= 0; i--) {
int k=0;
int a = 0;
int b = 0;
for (int j = values1.length - 1; j >= 0; j--) {
a += (Integer.parseInt(values1[j])*Math.pow(10,z)) * (Integer.parseInt(values2[i])*Math.pow(10,k));
b += (Integer.parseInt(values1[j])) * (Integer.parseInt(values2[i])*Math.pow(10,k));
k++;
}
sum += a;
System.out.println(b);
z++;
}
System.out.println(sum);
}
}
무식하게 하나씩 자르고...하나씩 형변환해서....자리에맞게 제곱을 구해서 구했다
심지어 출력형식을 맞추겠다고 다른연산을 한번 더 시키고 마지막 결과값은 그냥 곱하면될걸....ㅠ..........
생각을 해보고 하자....!!!!!!!
수정한 풀이>
두번째 입력받은 수를 10으로 나눈 나머지로 첫번째입력받은수와 곱한다
ex)
472
385
temp=385
1. 385%10=5
System.out.println(472*5)
=> temp=385/10=38
2. 38%10=8
System.out.println(472*8)
=> temp=38/10=3
3. 3%10=3
System.out.println(472*3)
=> temp=3/10=0
4. while문 탈출후
System.out.println(472*385)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baekjoon2588 {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int val1 = Integer.parseInt(br.readLine());
int val2 = Integer.parseInt(br.readLine());
int temp=val2;
while (temp > 0) {
System.out.println(val1 * (temp % 10));
temp /= 10;
}
System.out.println(val1 * val2);
}
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[JAVA]백준 - 2920.음계 (0) | 2020.11.04 |
---|---|
[JAVA]백준 - 1924.2007년 (0) | 2020.10.27 |
[JAVA]백준 - 1541.잃어버린 괄호 (0) | 2020.09.14 |
[JAVA]백준 - 10162.전자레인지 (0) | 2020.09.12 |
[JAVA]백준 - 5585.거스름돈 (0) | 2020.09.12 |