프로그래밍 문제/BOJ(백준 온라인 저지)
[BOJ 15595번] 정답 비율 계산(JAVA)
테크케찰
2020. 9. 29. 01:12
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);
}
}
아래 링크를 참고하여 문제를 풀어보았습니다.
BOJ 15595번(정답 비율 계산하기) 문제 풀이
[문제 링크] [문제 분석] BOJ에서 정답률 계산 공식을 구현하는 문제 [풀이] 이 문제는 제출 정보가 주어졌을 때, 정답률을 계산하는 문제입니다. (계산 공식) 정답률 = (정답자 수) / ((정답자 수) + (
ddmanager.tistory.com
해쉬맵을 이용해서 값을 관리했습니다.
String을 키로 설정하고 Integer을 값으로 설정해 아이디별 문제를 푼 개수를 저장하였고, 문제를 맞았을 시에는 Integer 의 값에 -1을 곱해 음수로 저장해 값을 관리했습니다.