Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- array
- 최대 길이
- GitHub #Commit #BaekJoon
- 연속부분수열
- 보이는 학생
- 뒤집은 소수
- 투 포인터
- 누적 계산
- java
- Two Pointer
- 코테준비
- 10991
- 임시반장 정하기
- 알고리즘
- Pointer
- 가장 짧은 문자거리
- 큰 수 출력하기
- 점수계산
- 자바
- 공통원소 구하기
- 배열
- 격자판
- ArrayList
- 10992
- 등수구하기
- 모든행과열대각선의합
- 아스키코드
- 인프런
- 백준
- 두 배열 합치기
Archives
- Today
- Total
ezhoon
[백준] 2588_Java 본문
2588번: 곱셈
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
www.acmicpc.net

입출력의 마지막 문제이다. 지금까지 풀었던 문제에 비하면 복잡해보이지만 막상 풀어보면 지금까지 해왔던 코드와 별반 다를게 없다.
문제풀이
BufferedReader + StringBuilder 문제풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputOutput_2588 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine());
int B = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
sb.append(A * (B % 10));
sb.append("\n");
sb.append(A * ((B % 100)/10));
sb.append("\n");
sb.append(A * (B / 100));
sb.append("\n");
sb.append(A * B);
System.out.println(sb);
}
}
우선은 제가 푼 코드 중에 제일 빠른 속도가 나온 코드입니다.
짤막한 자릿수 구하는 방법입니다.
% -> 나머지 반환
/ -> 몫 반환
일의 자리는 385 % 10 을 해주면 10으로 나눠준 값의 나머지를 구하게 됩니다 그러면 5가 반환됩니다.
십의 자리는 385 % 100 을 해주면 85가 나오고 이걸 10으로 나눠주면 됩니다. 그러면 85/10 이 될테니 8이 반환됩니다.
백의 자리는 385 / 100을 해주면 3이 나오게 됩니다.
몫 과 나머지를 반환하는 방법을 자세히 생각해보면 될 것 같습니다.
BufferedReader + toCharArray() 문제풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputOutput_2588 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine());
String B = br.readLine();
char[] BArray = B.toCharArray();
System.out.println(A * (BArray[2]- '0'));
System.out.println(A * (BArray[1]- '0'));
System.out.println(A * (BArray[0]- '0'));
System.out.println(A * Integer.parseInt(B));
}
}
toCharArray() 문자열을 배열 형태로 하나씩 반환 해주는 메소드입니다.
-'0'의 사용 이유
문자로 저장된 숫자가 아닌 우리가 보는 숫자 그대로의 값을 쓰기 위한 것입니다.
이것으로 백준 입출력과 사칙연산이 끝이 났습니다.
가장 기본이 되는 입출력이지만 중간중간 헷갈리는게 많았으며 처음으로 사용하는 BufferedReader readLine() StringToKenizer 등
다양한 입출력 방식이 있다는 것을 알게되는 좋은 알고리즘 풀이였다고 생각합니다.
'[Java] 백준 문제풀이 > 입출력과 사칙연산' 카테고리의 다른 글
[백준] 11721_열 개씩 끊어 출력하기_Java (0) | 2022.01.10 |
---|---|
[백준] 11718_그대로 출력하기_Java (0) | 2022.01.10 |
[백준] 10430_Java (0) | 2022.01.02 |
[백준] 10869_Java (0) | 2022.01.02 |
[백준] 1008_Java (0) | 2022.01.02 |