본문 바로가기

카테고리 없음

[백준 BAEKJOON / 자바 JAVA] 25304번 : 영수증

Q) BAEKJOON / JAVA / 25304 : 영수증

https://www.acmicpc.net/problem/25304

 

25304번: 영수증

준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것

www.acmicpc.net


※ 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();
		
	}
}