회고록 블로그
[백준 코테 풀기] 2588번. 곱셈 본문
[문제]
https://www.acmicpc.net/problem/2588
[풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int firstNum = sc.nextInt();
int secondNum = sc.nextInt();
// secondNum의 일, 십, 백의 자리 변수
int hundredsDigit = 0, tendsDigit = 0, unitDigit = 0;
// secondNum의 일, 십, 백의 자리 구하기
{
int tempValue = secondNum;
hundredsDigit = tempValue / 100; // 백의자리 수
tempValue = tempValue % 100;
tendsDigit = tempValue / 10; // 십의자리 수
tempValue = tempValue % 10;
unitDigit = tempValue; // 일의자리 수
}
System.out.println(firstNum*unitDigit);
System.out.println(firstNum*tendsDigit);
System.out.println(firstNum*hundredsDigit);
System.out.println(firstNum*((unitDigit*1)+(tendsDigit*10)+(hundredsDigit*100)));
}
}
[부가설명]
위의 방법이 최선의 풀이는 아닌 것 같다. "좋은 풀이"를 보고 싶은데 아직 어떻게 보는건지 모르겠다..ㅠ
문제를 풀어갈 때 고민한 내용은 아래와 같다.
<1>
주석 "secondNum의 일, 십, 백의 자리 구하기" 이하 6줄의 코드를 중괄호로 묶은 이유는 Java의 변수 scope에 제한을 주기 위해서이다.
변수를 중괄호로 묶으면 해당 중괄호 안에서만 사용할 수 있는 지역변수가 된다고 배웠다.
코드가 길어지면 또 어딘가에서 tempValue라는 변수를 사용할 수도 있으니, 변수명 중복을 대비하기 위해 중괄호로 묶어버렸다.
참조 글 : 2021.09.05 - [2. 개발 공부/Java] - [공부 필기] Java 기본 공부하기 (5)
<2>
두번째 입력받은 값(secondNum)의 백의 자리, 십의 자리, 일의 자리를 구하는 방법은 아래의 컨셉으로 구상했다.
사실 다른 방법이 있을 수도 있지만 이 방법이 가장 편했다..ㅎ
드디어 기초 중의 기초인 1단계를 끝냈다!
'4. 기타 공부 > 코테 준비' 카테고리의 다른 글
[백준 코테 풀기] 9498번. 시험 성적 (0) | 2021.11.29 |
---|---|
[백준 코테 풀기] 1330번. 두 수 비교하기 (0) | 2021.11.29 |
[백준 코테 풀기] 10430번. 나머지 (0) | 2021.11.27 |
[백준 코테 풀기] 10869번. 사칙연산 (0) | 2021.11.27 |
[백준 코테 풀기] 1008번. A/B (0) | 2021.11.09 |
Comments