최대 1 분 소요

[백준 16462번] ‘나교수’교수님의 악필


넘 웃곀ㅋㅋ 교수님이 악필이라서 0, 6, 9를 구분할 수 없어, 위 숫자를 모두 9로 바꾼 점수의 평군을 구하라는 문제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
 
public class 백준_손수경_정답_16462 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(br.readLine());
        int sum = 0;
        for (int i = 0; i < n; i++) {
            String score = br.readLine();
            if (score.compareTo("100"!= 0) {
                String[] splitScore = score.split("");
                for (int j = 0; j < splitScore.length; j++) {
                    if (splitScore[j].compareTo("0"== 0 || splitScore[j].compareTo("6"== 0) {
                        splitScore[j] = "9";
                    }
                }
                score = String.join("", splitScore); //배열을 문자열로 합침.
            }
            sum += Integer.parseInt(score);
        }
        bw.write((int)Math.round(sum / (double)n) + "\n");
        bw.close(); 
    }
}
 
cs


풀이 방법

문자열 헝식으로 점수를 입력받은 다음에 100이 아닌 경우, 그 점수를 .split(“”) 를 사용하여서 각 숫자가 0, 6 에 해당하는지 아닌지를 판별한다. 0, 6에 해당한다면 그 값을 9로 대입한다. 9로 바뀌어 있는 것은 배열이므로, 이 배열들을 하나의 문자열로 바꾼다. 여기서 나중에 Integer.parseInt 를 통해서 입력 받을 때마다 총합을 구할 것이므로 문자열로 바꾸어 준 것이다. 배열을 문자열로 바꾸는 방법은 .join 메서드를 사용하는 것이다. 그 후 문자열을 정수형으로 바꾸어서 평균을 구했다.

댓글남기기