문제 출처: https://www.acmicpc.net/problem/25304
1. 코드
import java.util.*;
class Product{
private int cost, num;
static int sum = 0;
Product(int cost, int num){
this.cost = cost;
this.num = num;
productSum();
}
private void productSum() {
sum += cost * num;
}
}
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int n = sc.nextInt();
Product[] p = new Product[n];
for(int i = 0; i < n; i++)
p[i] = new Product(sc.nextInt(), sc.nextInt());
String result = (x == Product.sum) ? "Yes" : "No";
System.out.println(result);
sc.close();
}
}
2. 풀이
class Product{
private int cost, num;
static int sum = 0;
Product(int cost, int num){
this.cost = cost;
this.num = num;
productSum();
}
private void productSum() {
sum += cost * num;
}
}
Product 클래스는 준원이가 구매한 물건에 대한 정보를 다루기 위함이다. cost는 물건의 가격, num은 물건의 수, 그리고 sum은 총 물건 가격의 합계이다. Product 생성자는 물건의 가격과 개수 정보를 받아서 저장한 후 productSum 클래스 메소드를 통해서 입력된 물건들의 가격을 계산한다.
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int n = sc.nextInt();
Product[] p = new Product[n];
for(int i = 0; i < n; i++)
p[i] = new Product(sc.nextInt(), sc.nextInt());
String result = (x == Product.sum) ? "Yes" : "No";
System.out.println(result);
sc.close();
}
}
main 함수에서는 x와 n에 대한 정보를 입력받고 n만큼 Product 인스턴스를 배열로 할당한 뒤 n만큼 반복하여 물건의 가격과 개수를 Product 생성자에 전달한다. 물건 가격의 총액은 이미 계산이 되었기에 영수증에 가격과 비교 후 같다면 Yes를 다르다면 No를 출력해준다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2108번: 통계학(자바 Java) (0) | 2022.10.12 |
---|---|
백준 알고리즘 25305번: 커트라인(자바 Java) (0) | 2022.10.11 |
백준 알고리즘 2480번: 주사위 세개(자바 Java) (0) | 2022.10.09 |
백준 알고리즘 2525번: 오븐 시계(자바 Java) (0) | 2022.10.08 |
백준 알고리즘 25083번: 새싹(자바 Java) (0) | 2022.10.07 |