https://www.acmicpc.net/problem/2845
설명
상근이는 1m^2당 몇 명의 사람이 있었는지 알고있다. 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다. 상근이는 자신이 알고있는 참가자의 수가 정확하다고 생각한다. 각 신문 기사에 실려있는 참가자의 수가 몇 명 만큼 잘못되어있는지 구하는 프로그램을 작성하시오.
풀이
1m^2당 사람의 수와 넓이를 곱하면 넓이당 몇 명의 사람이 수용되는지 알 수 있다. 신문에 실린 참가자 수에서 곱한 결과를 빼야 하는 단순한 연산 문제이다. 연산 과정은 참가자 수를 하나씩 입력받고 바로 연산 후 결과 배열에 저장해서 최종적으로 결과를 출력한다.
Solution
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//사람 수와 넓이 입력받기
int people = sc.nextInt();
int width = sc.nextInt();
int totalWidth = people * width;
int[] result = new int[5];
//기사에 실려있는 참가자 수 입력과 동시에 연산
for (int i = 0; i < 5; i++) {
int participant = sc.nextInt();
result[i] = participant - totalWidth;
}
for (int i : result) {
System.out.printf("%d ", i);
}
sc.close();
}
}
👩💻 회고
연속된 정수를 입력받고 싶을 때 파이썬때는 스페이스바를 입력해도 한 문장으로 취급하기 때문에 split()을 꼭 붙여줬어야 했다. 그러나 자바는 스페이스바를 하면 엔터와 같은 역할을 해서 단순히 변수를 따로 만들고 nextInt()만 쓰면 된다는 걸 알게 됐다.
그 점을 빼고는 이번 문제는 단순히 연산 문제여서 쉽게 풀 수 있었다. 위 코드에서 입력과 동시에 출력하는 더 간결한 코드를 작성해도 됐었지만 보기 편하게 풀어서 작성했다.
'BOJ 코딩테스트 > Bronze' 카테고리의 다른 글
BOJ 4470 : 줄번호 (Java/구현/Bronze 4) (1) | 2024.10.09 |
---|---|
BOJ 4299 : AFC 윔블던 (Java/구현/Bronze 4) (2) | 2024.10.08 |
BOJ 2083 : 럭비 클럽 (Java/구현/Bronze 4) (0) | 2024.09.29 |
BOJ 29731 : 2033년 밈 투표 (Java/구현/Bronze 5) (1) | 2024.09.28 |
BOJ 10886번 : 0 = not cute / 1 = cute (Java/구현/Bronze 3) (0) | 2024.03.27 |