본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:3,반복문,JAVA)25304번, 영수증

by 열정적인 이찬형 2022. 8. 17.

문제 링크

 

25304번: 영수증

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

www.acmicpc.net

 

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

이 문제에 핵심은

 

1. X의 값과 구매한 물건의 비용 × 개수가 같으면 Yes, 다르면 No를 출력합니다.

 

반복문을 통해 입력되는 물건의 가격과 비용을 모두 합한 뒤 X의 값과 비교하였습니다.

 

 

  • BufferedReader를 사용하여 입력값을 저장합니다.
  • StringTokenizer를 이용하여 입력된 값을 띄어쓰기 기준 나누었습니다.
  • for문을 입력된 물건의 가격과 개수를 곱한 뒤 합하였습니다.
  • X값과 합한 값이 같으면 Yes, 다르면 NoBufferedWriter 저장하였습니다.
  • BufferedWriter 저장된 결과를 출력하였습니다.
import java.io.*;
import java.util.StringTokenizer;

public class Main {
    static int N,X;
    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));
        StringTokenizer st;
        X = Integer.parseInt(br.readLine());
        N = Integer.parseInt(br.readLine());
        int sum = 0;
        //물건 가격과 개수를 곱한 뒤 합하기
        for(int i=0;i<N;i++){
            st = new StringTokenizer(br.readLine(), " ");
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            sum += a * b;
        }
        //합한 값과 X가 같은지 확인
        if(sum == X)	//같으면 Yes
            bw.write("Yes");
        else	//다르면 No
            bw.write("No");
        bw.flush();		//결과 출력
        bw.close();
        br.close();
    }
}
 

댓글