-
[백준/BOJ] 10179번 : 쿠폰 (JAVA / 자바)백준 2022. 1. 25. 17:26
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/10179
10179번: 쿠폰
당신은 어떤 물건이라도 20% 할인해주는 쿠폰을 가지고 있다. 원래 가격이 주어질 때, 쿠폰을 사용하면 얼마가 되는지 알려주는 프로그램을 작성하시오.
www.acmicpc.net
- 문제 -
난이도 브론즈 4 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
(JAVA / 자바) Scanner 와 Bufferedreader
안녕하세요~ 코딩하는 코알못 코메인입니다. 이번엔 백준 문제 풀면서 계속 언급될 scanner와 bufferedreader에 대한 간단한 정리를 해볼거다. 자바에서 입력은 scanner와 bufferedreader가 있다. 우선 각자
comain.tistory.com
풀이 방법
for문과 String.format을 이용
처음에 Math.round를 사용했다 틀리고 이유를 한참 생각하다 알았다...
Math.round는 반올림 할 자리에 0이 없다면 0을 삭제한다. 하지만 String.format은 그대로 리턴한다.
문제에서 원하는 출려값은 반올림 하지 않아도 .00이 주어지는 것이기에 여기서는 String,format이 맞다.
바로 파악하지 못한 것은 순전히 각 방식의 이해도 부족이다...(공부가 더더욱 절실해졌다...)
하얀 글씨가 출력 값이다 두개씩 있는데 그 중 위에꺼가 Math.round이고 아래가 String.format이다.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Math { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //첫 줄에 테이트 케이스의 수를 입력 int N = Integer.parseInt(br.readLine()); //for문에 i를 0부터 N까지 지정하므로써 N번 반복하게 설정 for(int i = 0; i < N; i++) { //반복 횟수 만큼 금액을 입력. 입력값이 실수이니 double형으로 형변환 double money = Double.parseDouble(br.readLine()); //20프로 할인은 곱하기 0.8로 연산 money *= 0.8; System.out.println("$" + String.format("%.2f", money)); } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 10768번 : 특별한 날 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10707번 : 수도요금 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10162번 : 전자레인지 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10156번 : 과자 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10101번 : 삼각형 외우기 (JAVA / 자바) (0) 2022.01.25