회고록 블로그

[백준 코테 풀기] 2588번. 곱셈 본문

4. 기타 공부/코테 준비

[백준 코테 풀기] 2588번. 곱셈

김간장 2021. 11. 27. 23:56

[문제]

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

 

[풀이]

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)

 

[공부 필기] Java 기본 공부하기 (5)

공부 중인 강의 : 윤성우 선생님, 윤성우의 열혈 Java 프로그래밍 강의, https://cafe.naver.com/cstudyjava 윤성우의 프로그래밍 스터디그룹 [C/... : 네이버 카페 윤성우의 스터디 공간입니다. C와 JAVA를 공

cinnamonc.tistory.com

 

<2>

두번째 입력받은 값(secondNum)의 백의 자리, 십의 자리, 일의 자리를 구하는 방법은 아래의 컨셉으로 구상했다.

사실 다른 방법이 있을 수도 있지만 이 방법이 가장 편했다..ㅎ

 


드디어 기초 중의 기초인 1단계를 끝냈다!

 

Comments