먹었으면 뇌를 쓰자
백준 1546 java - 평균 본문
문제
정답
4단계에서 거의 매번 틀리고 있어서
오답 코드를 보면 너무 우울해진다.
우울할 일까지는 아니지만
맞히고 싶은 열망이 커서 그런 것 같다.
정답 로직만 정리해보자.
중요한 점은 세 가지이다.
1. StringTokenizer
-> for문 안에 넣은 코드가 틀렸었다. 내가 왜 StringTokenizer를 for문 안에 넣었을까 생각해봤다.
3단계 A+B-7 문제에서 for문 안에 넣었던 경험 때문에 그런 것 같다. (https://eat-then-brain.tistory.com/49)
-> A+B-7 문제는 입력 값 자체가 여러 번 들어왔기 때문에 토큰화도 여러 번 했어야 했다.
그런데 이번 문제는 입력 값은 한 번만 들어오니까 토큰화를 반복하지 않는다.
2. (arr [ i ] / max) * 100
-> 연산자 우선 순서에 따르면 *가 먼저 수행되므로, 괄호로 묶어준다.
3. double
-> 맨 처음 입력되는 과목 수 n을 제외하고 다른 모든 변수가 double형이다.
점수 조작 공식을 각각 int형과 double형으로 구현해보면 다음과 같이 상이한 결과가 나온다.
-> int형으로 하면 소수점이 나오는 경우 연산이 제대로 되지 않는다.
따라서 연산에서 큰 비중이 없는 과목 수 n을 제외한 배열 arr[], 최대 점수 max, 합 sum은 double형으로 한다.
'JAVA > 백준 알고리즘' 카테고리의 다른 글
백준 4344 java - 평균은 넘겠지 (0) | 2022.12.01 |
---|---|
백준 8958 java - OX퀴즈 (1) | 2022.11.30 |
백준 3052 java - 나머지 (풀이 추가: for-each문/HashSet) (0) | 2022.11.24 |
백준 5597 java - 과제 안 내신 분..? (이해 안 가는 사람 위한 풀이) (0) | 2022.11.24 |
백준 2565 java - 최댓값 (0) | 2022.11.23 |
Comments