[ 백준 문제 2588 / 자바 ] 곱셈
2023. 2. 21. 16:58ㆍ백준/자바
백준 문제 제출할 때 클래스 명은 Main으로 해야 컴파일 에러가 안난다고 합니다!
자바로 처음으로 풀어본 문제입니다 :)
나의 정답:
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()
파이썬으로 코드 짰을 때랑 비교해보면 확실히 자바가 복잡하네요..
'백준 > 자바' 카테고리의 다른 글
[ 백준 문제 10811 / 자바 ] 바구니 뒤집기 (3) | 2023.02.23 |
---|---|
[ 백준 문제 10813 / 자바 ] 공 바꾸기 (1) | 2023.02.22 |
[ 백준 문제 10810 / 자바 ] 공 넣기 (0) | 2023.02.21 |
[ 백준 문제 25314 / 자바 ] 코딩은 체육과목 입니다 (0) | 2023.02.21 |
[ 백준 문제 11382 / 자바 ] 꼬마 정민 (0) | 2023.02.21 |