[ 백준 문제 2588 / 자바 ] 곱셈

2023. 2. 21. 16:58백준/자바

 

[백준알고리즘/JAVA] error: class 클래스명 is public, should be declared in a file named 자바명.java

안녕하세요 백준 알고리즘에서 정답을 제출할 때 에러에 대해 알아보겠습니다 JAVA를 처음으로 사용해서 문제를 제출할 때 밑에와 같은 에러가 뜨는 것을 한 번씩 다 경험하셨을겁니다 error: class

crazykim2.tistory.com

백준 문제 제출할 때 클래스 명은 Main으로 해야 컴파일 에러가 안난다고 합니다!

 

 

 

자바로 처음으로 풀어본 문제입니다 :)

 

 

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 first = sc.nextInt();
        String second = sc.next();

        sc.close();

        for (int i = 2; i >= 0; i--) {
            int value = first * Character.getNumericValue(second.charAt(i)) ;
            System.out.println(value);
        }

        System.out.println(first * Integer.parseInt(second));


    }

}

 

세자리수라서

굳이 for문으로 하면 속도가 더 느려지긴 하는데

이렇게 해줬습니다.

 

우선 사용자 입력을 받기 위해 Scanner 객체를 생성해줍니다.

 

int first = sc.nextInt();
String second = sc.next();

 

nextInt()는 데이터를 입력받아 int 형으로 반환합니다.

next()는 데이터를 입력받아 String 형으로 반환합니다.

 

 

Scanner 객체가 생성한 변수 sc의 사용이 끝나면,

sc.close();

명시적으로 close() 메소드를 호출하여 열린 Scanner를 닫아주는 것이 좋다고 합니다.

 

for (int i = 2; i >= 0; i--) {
    int value = first * Character.getNumericValue(second.charAt(i)) ;
    System.out.println(value);
}

second 숫자의 1의 자리부터 first와 곱해주는 것이니,

second의 index는 거꾸로! 역순으로! 들어가줘야 합니다.

 

385의 1의자리는 5입니다.

'5'의 인덱스는 2입니다.

for문이 순서대로 작동한다면, 0인덱스인 100의 자리부터 반환되겠죠..

 

그리고 second는 문자열로 받아줬기 때문에

순서가 있어서 각 인덱스에 해당하는 문자를 반환해줄 수 있게됩니다.

 

.charAt(index)

 

String으로 저장된 문자열 중 index에 해당하는 문자를 char 타입으로 변환해줍니다.

 

형 변환: char -> int
character.getnumericvalue()

 

연산을 해주기 위해 int 형으로 변환해줍니다.

 

System.out.println(first * Integer.parseInt(second));

 

형 변환: String -> int
Integer.parseInt()

 

 

[ 백준 문제 2588 / 파이썬 ] 곱셈

2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 나의 정답: 방법 1) num1 = int(input()) num2 = list(map(int, list(input()))) print(num1 * num2[2]) print(num1 * num2[1]

jnk2001.tistory.com

파이썬으로 코드 짰을 때랑 비교해보면 확실히 자바가 복잡하네요..