강의

멘토링

커뮤니티

Inflearn Community Q&A

xoxojhk's profile image
xoxojhk

asked

Do it! Algorithm Coding Test with JAVA

[Array and List Practice Problem] Finding the Average (Baekjoon 1546)

평균 구하기 (백준 1546) 질문

Resolved

Written on

·

717

0

System.out.println(sum*100.0/max/N);

강의에서는 이렇게 출력하는데

 

System.out.println(sum/max*100.0/N);

이렇게 /max 와 *100.0 의 위치를 바꾸게 되면

출력값이 다르게 나와요!

 

문제에서 점수/M*100

그러니까 점수를 최댓값으로 나누고 100을 곱한다고 되어 있는데

 

순서에 따라 출력값이 다른 거면 다르게 풀어야되지 않을까요??

java코딩-테스트알고리즘

Answer 3

1

harucoding님의 프로필 이미지
harucoding
Instructor

말씀하신 부분은 sum과 max가 long형으로 선언이 되어있기 때문에 소수점 부분이 버림이 되기 때문입니다. 예를들어 sum = 32, max = 17이면 sum / max = 1 이라는 값이 나옵니다. 때문에 값이 다르게 나오게 됩니다. 만약 순서를 해당 방식으로 하고 싶다면 sum / (double)max 이런식으로 형변환을 하여 주시면됩니다. 감사합니다. :)

 

1

xoxojhk님의 프로필 이미지
xoxojhk
Questioner

sum과 max 를 double형으로 선언하니까 출력값이 잘 나오네요!
(이유는 잘 모르겠지만..ㅠㅠ)

혹시 굳이 long형으로 선언하신 이유가 있을까요..?

harucoding님의 프로필 이미지
harucoding
Instructor

해당 문제에서는 int, long 차이가 없습니다. ^-^ 다만 습관적으로 가능하면 long을 써주면 좋긴합니다. https://youtu.be/x-cYdsjfVKU 해당 영상을 한번 보시면 좋을 것 같습니다.

감사합니다. :)

0

변수명이 어떤 건지 알아 볼 수가 없어서 조금 헷갈립니다..

xoxojhk's profile image
xoxojhk

asked

Ask a question