https://www.acmicpc.net/problem/25304
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int totalPrice = scan.nextInt();
int items = scan.nextInt();
int rsTotalPrice = 0;
for (int i = 0; i < items; i++) {
int x = scan.nextInt();
int y = scan.nextInt();
rsTotalPrice += x*y;
}
if(totalPrice == rsTotalPrice) {
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
int totalPrice = scan.nextInt();
int items = scan.nextInt();
영수증에 나온
totalPrice = 최종 계산값
items = 아이템 갯수(종류)
>종류이니 for문 이용시 items로 딱 맞는 계산식을 만들 수 있다.
int rsTotalPrice = 0;
각 물건들의 값(물건값*갯수)을 저장할 곳
for (int i = 0; i < items; i++) {
int x = scan.nextInt();
int y = scan.nextInt();
rsTotalPrice += x*y;
}
items까지 반복(구매한 물건의 종류 수만큼 반복)
x = 물건의 가격
y = 물건의 갯수
rsTotalPrice += x*y;
for문 반복을 이용해 각각의 물건값(x*y)을 rsTotalPrice에 더해준다
if(totalPrice == rsTotalPrice) {
System.out.println("Yes");
}else {
System.out.println("No");
}
영수증에 나온 최종값(totalPrice)과
각각의 물건의 계산값의 합(rsTotalPrice)이
일치하면 "Yes" 일치하지 않으면 "No"
코드를 좀 더 줄여보자
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int totalPrice = scan.nextInt();
int items = scan.nextInt();
int rsTotalPrice = 0;
for (int i = 0; i < items; i++) {
rsTotalPrice += scan.nextInt() * scan.nextInt();
}
System.out.println((rsTotalPrice == totalPrice ? "Yes" : "No"));
}
}
(수정)
1. 불필요하게 x, y로 각 물건의 갯수 및 가격을 담지 않고, 바로 계산하여 각 물건의 최종값을 rsTotalPrice에 더해준다.
2. 삼항연산자 사용 (rsTotalPrice == totalPrice ? "Yes" : "No")
> rsTotalPrice와 totalPrice가 같으면 "Yes" 아니면 "No"
'백준' 카테고리의 다른 글
백준 15552 빠른 A+B (0) | 2025.01.03 |
---|---|
백준 8393 합 (0) | 2025.01.01 |
백준 10950 A+B -3 (0) | 2024.12.31 |
백준 2739 구구단 (1) | 2024.12.30 |
백준 2480 주사위 세개 (0) | 2024.12.29 |