Q) BAEKJOON / JAVA / 25304 : 영수증
https://www.acmicpc.net/problem/25304
※ for 반복문
for (초기화; 조건식; 증감식) {
// 조건식이 True일 때 수행될 문장 작성
}
A)
- [1] Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//스캐너 선언
Scanner sc = new Scanner(System.in);
//nextInt() 활용
//정수형으로 저장
int X = sc.nextInt(); //총 금액
int N = sc.nextInt(); //물건 종류의 수
int total = 0; //총 금액과 비교할 변수 생성
//for 반복문
//1부터 물건의 개수 N개 까지 반복
//total에 반복적으로 a * b 값 더해주기
for(var i = 1; i <= N; i++) {
int a = sc.nextInt(); //각 물건의 가격
int b = sc.nextInt(); //각 물건의 개수
total += a * b;
}
//if 조건문
//total과 X값이 일치하면 Yes
//일치하지 않는다면 No
if(total == X) {
System.out.println("Yes");
}else {
System.out.println("No");
}
//스캐너 종료
sc.close();
}
}
- [2] BufferedReader + BufferedWriter
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
//BufferedReader 선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//BufferedWriter 선언
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//readerLine()으로 행 읽어오기
//parseInt()로 정수형으로 변환
int X = Integer.parseInt(br.readLine()); //총 금액
int N = Integer.parseInt(br.readLine()); //물건 종류의 수
int total = 0; //총 금액과 비교할 변수 생성
//for 반복문 사용
//물건 종류의 수 N만큼 반복
for(int i = 1; i <= N; i++) {
//readLine()활용 입력값 문자열로 저장
String str = br.readLine();
//StringTokenizer 활용 문자열 토큰 단위로 분할
StringTokenizer st = new StringTokenizer(str, " ");
//nextToken()활용 토큰값 가져오기
//parseInt()정수형으로 변환
int a = Integer.parseInt(st.nextToken()); //각 물건의 가격
int b = Integer.parseInt(st.nextToken()); //각 물건의 개수
//total에 반복적으로 a * b 값 더해주기
total += a * b;
}
//if 조건문
//total과 X값이 일치하면 Yes
//일치하지 않는다면 No
if(total == X) {
System.out.println("Yes");
}else {
System.out.println("No");
}
//BufferedWriter 비우기
bw.flush();
//BufferedWriter 종료
bw.close();
}
}