Notice
Recent Posts
Recent Comments
Link
250x250
콩부방
1285 : 계산기 2 본문
728x90
계산기 1에서 두 피연산자에 대한 연산만 다루었다.
이번에는 식을 입력하면 차례대로 계산하여 출력하는 계산기를 만들어보자.
단, 우선순위는 따지지 않고 왼쪽에서 부터 차례대로 계산하고, 모든 계산은 정수형 계산으로 처리한다.
입력
첫째 줄에 정수와 사칙연산기호가 식으로 입력된다.
(정수는 int 범위, 괄호 없이 +,-,*,/)
식의 마지막엔 =가 입력된다.
출력
왼쪽부터 차례대로 연산한 결과를 출력한다.(우선순위x)
입력 예시 예시 복사
3+3-3*3/3=
출력 예시
3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
String[] num = a.split("\\+|\\-|\\*|/|\\=");
String[] oper = a.split("1|2|3|4|5|6|7|8|9|0| ");
String ns="";
int result=0;
for (int i = 0; i < oper.length; i++) {
if (!oper[i].equals(" ")) {
ns += oper[i];
}
}
String[] oper2 = ns.split("");
int[] num2 = new int[num.length];
for (int i = 0; i < num.length; i++) {
num2[i] = Integer.parseInt(num[i]);
}
try {
for (int i = 0; i < oper2.length; i++) {
if(oper2[i].equals("="))break;
else {
if(oper2[i].equals("+")) {
num2[i+1] = num2[i] + num2[i+1];
}else if(oper2[i].equals("-")) {
num2[i+1] = num2[i] - num2[i+1];
}else if(oper2[i].equals("*")) {
num2[i+1] = num2[i] * num2[i+1];
}else if(oper2[i].equals("/")) {
num2[i+1] = num2[i] / num2[i+1];
}
}
}
}catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println(num2[num2.length-1]);
}//main
}
푸는데 너무오래걸렸다..
728x90
'알고리즘 공부 > CodeUp' 카테고리의 다른 글
1287 : 구구단을 *로 출력하기 (0) | 2021.08.21 |
---|---|
1286 : 최댓값, 최솟값 (0) | 2021.08.21 |
1284 : 암호 해독 (0) | 2021.08.19 |
1283 : 주식 투자 (0) | 2021.08.19 |
1282 : 제곱수 만들기 (0) | 2021.08.18 |
Comments