마음만은 새내기

항상 초심을 잃지 않고 생활하겠습니다~!

프로그래밍/Baekjoon Online Judge

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

동동매니저 2019. 2. 13. 11:09

★ solved.ac 난이도 : S3

(2021년 12월 29일 기준)


[문제 링크]

 

15595번: 정답 비율 계산하기

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

www.acmicpc.net


[문제 분석]

BOJ에서 정답률 계산 공식을 구현하는 문제


[풀이]

이 문제는 제출 정보가 주어졌을 때, 정답률을 계산하는 문제입니다.

 

(계산 공식)

정답률 = (정답자 수) / ((정답자 수) + (각 정답자가 정답을 받기 전까지 틀린 횟수의 총 합)) * 100

(단위는 % 입니다.)

단, 정답자 계산 시 관리자 제출은 제외해야 합니다.

만약, 이를 통한 결과의 분모가 0이면, 정답률은 0%가 됩니다.

 

여기에서 입력은 채점 번호 오름차 순으로 주어지며,

관리자 ID는 'megalusion'입니다.

또한, 사용 메모리, 소요 시간, 언어, 코드 길이는 계산에 전혀 필요가 없습니다.

즉, 입력만 받고 사용을 하지 않는 것이죠.

 

여기에서는, Java에서 제공하는 자료구조 중 하나인, HashMap을 사용했습니다.

Key 값은 유저 ID (String), Value 값은 Integer로 하였습니다.

Integer value에는 시도 횟수와 정답 여부가 들어있는데요,

이 값이 음수이면 이미 문제를 해결했다는 뜻입니다.

또한, 관리자 ID이거나 이미 정답을 받은 사용자의 경우, 계산에서 제외했습니다.

(자세한 내용은 아래의 소스 코드를 참고해주세요~!)


[소스 코드]

만약 틀린 부분이 있다면 지적 부탁드릴게요~! (댓글 환영!!)