💡문제 풀이/백준 - JAVA

영수증 / 25304

뇌 리셋은 기본이지 2023. 11. 13. 18:57

정보

분류 : 반복문

 

문제

문제링크

 

풀이

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int x = sc.nextInt(); //영수증에 적힌 총 금액
		int n = sc.nextInt(); //영수증에 적힌 구매한 물건의 종류의 수
		int sum = 0;
		
		for(int i = 0; i < n ; i++) {
        
			int a = sc.nextInt(); //금액
            
			int b = sc.nextInt(); //개수
			
			sum += a * b;
		}
		
		System.out.println(x == sum ? "Yes" : "No");
		
	}
}

 

풀이 후기

총 금액과 행 마다 입력하는 각 상품의 금액을 비교하여 결과 값을 출력하는 문제이다.

 

n은 행 마다 상품 금액과 상품의 개수를 입력할 수 있는 변수이다. 상품 금액과 상품의 개수는 반복하여 입력해야하기 때문에 for문 안에 그에 맞는 지역변수를 두 개 선언하고, 전역변수로 선언해둔 sum을 통해 행 마다 입력한 상품 금액과 상품의 개수를 곱한 값을 n만큼 반복하여 sum에 더한다. 즉, sum은 입력한 값의 총 금액이 된다.

 

단 sum은 단 하나의 값인 입력한 값의 총 금액이기 때문에 for문을 벗어난 밑 쪽에 위치해두면 되고, 영수증의 총 금액(x)과 비교하여 그에 맞는 결과 값을 출력해야하기 때문에 삼항연산자를 사용하였다. 영수증 총 금액과 입력한 총 금액이 동일하면 "Yes"를 출력하고, 그게 아니라면 "No"를 출력하도록 println 함수 안에 삼항연산자를 적용시켰다.

 

//삼항연산자 구조
(조건) ? (조건 '참'일 경우 실행할 코드) : (조건 '거짓'일 경우 실행할 코드);

'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글

빠른 A+B / 15552  (0) 2023.11.16
코딩은 체육과목 입니다 / 25314  (0) 2023.11.16
합 / 8393  (0) 2023.11.13
A+B - 3 / 10950  (0) 2023.11.13
구구단 / 2739  (0) 2023.11.13