본문 바로가기
프로그래밍 문제/BOJ(백준 온라인 저지)

[BOJ 15595번] 정답 비율 계산(JAVA)

by 테크케찰 2020. 9. 29.

www.acmicpc.net/problem/15595

 

15595번: 정답 비율 계산하기

첫째 줄에 어떤 문제의 총 제출 횟수 N(1 ≤ N ≤ 200,000)이 주어진다. 둘째 줄부터 N개의 줄에 각 제출의 정보가 제출 번호 순서대로 주어진다. 제출 정보는 총 7가지가 공백 하나로 구분되어져 있�

www.acmicpc.net

import java.io.*;
import java.util.*;

class Main{
   
   static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
   static BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
   static StringBuilder sb=new StringBuilder();
   static int N;
   
   public static void main(String args[]) throws Exception {
	   N=Integer.parseInt(br.readLine());
	   int correctNum=0;
	   int countNum=0;
	   HashMap<String, Integer> map=new HashMap<>();
	   for(int iter=0;iter<N;iter++) {
		   String str[]=br.readLine().split(" ");
		   String userID=str[1];
		   if(userID.equals("megalusion"))	continue;
		   Integer temp=map.get(userID);
		   if(temp==null) temp=0;
		   else if(temp<0)	continue;
		   temp++;
		   if(Integer.parseInt(str[2])==4) {
			   correctNum++;
			   countNum+=temp;
			   temp*=-1;
		   }
		   map.put(userID, temp);
	   }
	   double answer;
	   if(countNum==0) answer=0;
	   else	answer=(double)correctNum/(double)countNum;
	   System.out.println(answer*100);
   }
}

아래 링크를 참고하여 문제를 풀어보았습니다.

ddmanager.tistory.com/58

 

BOJ 15595번(정답 비율 계산하기) 문제 풀이

[문제 링크] [문제 분석] BOJ에서 정답률 계산 공식을 구현하는 문제 [풀이] 이 문제는 제출 정보가 주어졌을 때, 정답률을 계산하는 문제입니다. (계산 공식) 정답률 = (정답자 수) / ((정답자 수) + (

ddmanager.tistory.com

해쉬맵을 이용해서 값을 관리했습니다.

String을 키로 설정하고 Integer을 값으로 설정해 아이디별 문제를 푼 개수를 저장하였고, 문제를 맞았을 시에는 Integer 의 값에 -1을 곱해 음수로 저장해 값을 관리했습니다.