https://softeer.ai/practice/6294
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
풀이
누적합 배열을 사용하여 풀이하였다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int[] scores = new int[n+1]; // 누적합 배열, scores[0] = 0
st = new StringTokenizer(br.readLine());
for (int i = 1; i <= n; i++) {
scores[i] = scores[i-1] + Integer.parseInt(st.nextToken());
}
while (k-- > 0) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int sum = scores[b] - scores[a-1];
double diff = (double)sum / (b-a+1);
// 소수 셋째자리에서 반올림
if (diff * 1000 % 10 >= 5) {
diff *= 100;
diff++;
diff = Math.floor(diff);
diff /= 100;
} else {
diff *= 100;
diff = Math.floor(diff);
diff /= 100;
}
System.out.printf("%.2f\n", diff);
}
}
}
반올림하여 실수 출력하기
위와 같이 "%.2f"를 쓰면 소수 셋째자리에서 반올림하여 소수점 이하 2자리를 출력한다.sb.append(String.format("%.2f", diff)).append("\n");
참고
[C언어] 실수형 변수 출력 시 소수점 자릿수 조절 (반올림/올림/내림)
소수점 자릿수 조절 (반올림/올림/내림) #include int main() { float f1 = 20.0616f; printf("소수점 이하 6자리 출력 : %f\n", f1); printf("소수점 이하 0자리 출력 : %.f\n", f1); printf("소수점 이하 0자리 출력 : %.0f\n",
mong9data.tistory.com
728x90
'Algorithm 문제 풀이 > Softeer' 카테고리의 다른 글
[Softeer/소프티어] 조립라인 - 자바[Java] (0) | 2024.06.26 |
---|---|
[Softeer/소프티어] 수퍼 바이러스 - 자바[Java] (0) | 2022.11.17 |
[Softeer/소프티어] 강의실 배정(그리디 : Greedy) - 자바[Java] (0) | 2022.11.01 |
[Softeer/소프티어] 징검다리(최장 증가 부분 수열 : LIS) - 자바[Java] (0) | 2022.11.01 |