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

+ Recent posts