반응형

https://www.acmicpc.net/problem/3077

 

3077번: 임진왜란

첫째 줄에 해전의 개수 N이 주어진다. (2 ≤ N ≤ 2500) 다음 줄에는 올바른 정답이 공백으로 구분되어 주어진다. 그 다음 줄에는 현우가 작성한 답안이 공백으로 구분되어 주어진다. 해전의 이름은

www.acmicpc.net

 

해결 방법 : 구현

  • 현우의 답안의 첫번째 해전 X의 경우, 정답지의 X에 대한 index가 해전 X로 인한 '오답'의 개수와 같다.
  • 위와 같이 X에 대한 오답 개수를 산정했다면, 이후에 X와 연관된 오답은 없어야 한다. 
  • 따라서 답안 List에서 X를 제거해주면 위 로직을 반복적으로 사용할 수 있다.

 

import sys
input = sys.stdin.readline

def solution(N, submit, answer):
    count = total = N * (N - 1) // 2 # 전체 문제 개수

    for s in submit: # 작성한 답안에 따른 해전을 순차적으로 검사
        count -= answer.index(s) # 전체 문제 개수로 초기화 된 count에서 s로 오답 개수 빼기
        answer.remove(s) # s에 대한 검사를 완료 했으므로, 정답지에서 s를 제거

    return str(count) + '/' + str(total)

if __name__ == '__main__':
    N = int(input())
    answer = input().split()
    submit = input().split()
    result = solution(N, submit, answer)
    print(result)
반응형

+ Recent posts