-
[백준/BOJ] 5613번 : 계산기 프로그램 (JAVA / 자바)백준 2022. 2. 5. 19:03
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/5613
5613번: 계산기 프로그램
입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출
www.acmicpc.net
- 문제 -
난이도 브론즈 3 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
(JAVA / 자바) Scanner 와 Bufferedreader
안녕하세요~ 코딩하는 코알못 코메인입니다. 이번엔 백준 문제 풀면서 계속 언급될 scanner와 bufferedreader에 대한 간단한 정리를 해볼거다. 자바에서 입력은 scanner와 bufferedreader가 있다. 우선 각자
comain.tistory.com
풀이 방법
연산 횟수에 제한이 없기 때문에 무한루프 사용.
=입력 되었을때 무한 루프 종료.
첫 값은 연산해서 저장할 변수에 저장한다.
무한루프에서는 사칙연산 문자를 받을 문자열과 숫자를 받을 정수형 변수를 선언한다.
소수점을 버리기로 했기때문에 정수형으로 계산해준다.
코드를 보자.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //이 변수에 계속 연산해준다. int result = Integer.parseInt(br.readLine()); while(true) { String S = br.readLine(); //무한루프 종료 if(S.equals("=")) break; int N = Integer.parseInt(br.readLine()); if(S.equals("+")) { result += N; }else if(S.equals("-")){ result -= N; }else if(S.equals("*")){ result *= N; }else{ result /= N; } } System.out.println(result); } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 5717번 : 상근이의 친구들 (JAVA / 자바) (0) 2022.02.06 [백준/BOJ] 5618번 : 공약수 (JAVA / 자바) (0) 2022.02.05 [백준/BOJ] 5612번 : 터널의 입구와 출구 (JAVA / 자바) (0) 2022.02.05 [백준/BOJ] 5565번 : 영수증 (JAVA / 자바) (0) 2022.02.05 [백준/BOJ] 5523번 : 경기 결과 (JAVA / 자바) (0) 2022.02.05