알고리즘 문제풀이/Beakjoon

백준 2985. 세 수 (JAVA)

joah.k 2023. 2. 13. 16:51
728x90

https://www.acmicpc.net/problem/2985

 

2985번: 세 수

첫째 줄에 정인이가 원래 적어준 등식을 출력한다. 입력으로 주어진 숫자의 순서는 유지해야 하고, 등호 하나와 더하기, 빼기, 곱하기, 나누기 기호 중 하나로 이루어져 있어야 한다. 만약 등식

www.acmicpc.net

 

세 수

   

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 4777 2391 2236 54.219%

문제

수학을 못해도 너무 못하는 상근이는 정인이에게 과외를 받고 있다. 오늘은 상근이가 사칙연산을 배우는 날이다.

정인이는 공책에 숫자 세개로 이루어진 등식을 적어주었다. (식은 자연수와 등호(=), 그리고 더하기, 빼기, 곱하기, 나누기 기호(+-*/)로 이루어져 있다)

상근이는 이런 등식을 사칙연산을 모르는 창영이게 자랑하다가 그만... 창영이는 숫자를 제외한 기호를 모두 지워버리고 말았다.

세 정수가 주어졌을 때, 원래 정인이가 적어준 등식을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정인이가 적어준 세 정수가 주어진다. 이 수는 100보다 작거나 같은 자연수이다. 항상 정답이 존재하는 경우만 입력으로 주어진다.

출력

첫째 줄에 정인이가 원래 적어준 등식을 출력한다. 입력으로 주어진 숫자의 순서는 유지해야 하고, 등호 하나와 더하기, 빼기, 곱하기, 나누기 기호 중 하나로 이루어져 있어야 한다. 만약 등식이 여러 가지가 나올 수 있다면, 그 중 하나만 출력한다.

예제 입력 1 복사

5 3 8

예제 출력 1 복사

5+3=8

예제 입력 2 복사

5 15 3

예제 출력 2 복사

5=15/3

 

 


풀이 : 입력된 세 수(a,b,c)의 위치가 바뀌지 않으므로 두 가지 경우로 나누어 생각하면 된다. 

1) 답이 a인 경우 : + - * / 

2) 답이 c인 경우 : + - * / 

총 8가지의 경우가 나올 수 있고, 간단한 연산식을 통해 답이 나온다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    // 백준 2985. 세 수
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        int C = Integer.parseInt(st.nextToken());

		if(A + B == C) {
			System.out.println(A + "+" + B + "=" + C);
		}else if(A - B == C) {
			System.out.println(A + "-" + B + "=" + C);
		}else if(A * B == C) {
			System.out.println(A + "*" + B + "=" + C);
		}else if(A / B == C) {
			System.out.println(A + "/" + B + "=" + C);
		}else if(A == B + C) {
			System.out.println(A + "=" + B + "+" + C);
		}else if(A == B - C) {
			System.out.println(A + "=" + B + "-" + C);
		}else if(A == B * C) {
			System.out.println(A + "=" + B + "*" + C);
		}else if(A == B / C) {
			System.out.println(A + "=" + B + "/" + C);
		}
    }
}

 

728x90