![[백준] 25304 - 영수증](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpiqhN%2FbtsyHYgjssT%2FliaGOhzW17yG3viIF2hO3K%2Fimg.png)
[백준] 25304 - 영수증알고리즘/백준2023. 10. 17. 17:44
Table of Contents
• 문제
이전에 풀었던 [10950] - A + B -3 과 유사한 문제이다.
• 풀이
얻어야하는 결과는 물건의 총 합계인 X와 N개 물건의 (a * b)가 같은지 다른지를 알아야한다.
즉, 영수증을 보고 계산한 총 합계를 sum이라고 가정하면
X == SUM이 true이냐 false이냐를 알아내면된다.
먼저 구매한 물건의 종류 수만큼 물건의 값, 개수를 계산해야하기때문에 N을 먼저 입력받고
N을 조건식으로 사용하여 for문을 만든다.
for(int i=0; i<N; i++)
그 뒤에 물건의 값인 a와, 물건의 개수인 b를 공백을 구분으로 하여 입력받고,
sum변수에 a * b의 값을 복합대입연산자를 사용하여 누적합 해주면 총 합계를 얻을 수 있다.
그렇게 나온 sum값을 X와 같은지 다른지 비교연산자를 사용하여 같으면 Yes, 다르면 No를 출력해주기만 하면 된다.
이 때, 일반적인if문이 아닌 삼항연산자를 사용하여 출력해보겠다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int X = sc.nextInt();
int N = sc.nextInt();
int sum = 0;
for(int i=0; i<N; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
sum += a * b;
}
System.out.println(sum == X ? "Yes" : "No");
}
}
이 구문이 삼항연산자이다.
sum == X ? "Yes" : "No"
sum == X문장이 true이면 Yes를 리턴,
sum == X문장이 false이면 No를 리턴한다.
•마무리
삼항연산자를 사용하면 코드의 가독성을 높일 수 있다.
하지만 삼항연산자를 중첩해서 너무 많이 사용하면 가독성이 오히려 떨어지는 역효과가 생길 수 있다.
보통 삼항연산자는 2개까지만 중첩하여 사용한다.
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 15552 - 빠른 A+B (0) | 2023.10.18 |
---|---|
[백준] 25314 - 코딩은 체육과목 입니다 (0) | 2023.10.18 |
[백준] 8393 - 합 (0) | 2023.10.17 |
[백준] 10950 - A + B - 3 (0) | 2023.10.17 |
[백준] 2739 - 구구단 (0) | 2023.10.17 |
@leegeonwoo :: geonwoo
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!