정보
분류 : 반복문
문제
풀이
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 |