[백준 16462번] ‘나교수’교수님의 악필
[백준 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
메서드를 사용하는 것이다. 그 후 문자열을 정수형으로 바꾸어서 평균을 구했다.
댓글남기기