반응형
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)
반응형
'IT study > 알고리즘 문제 풀이' 카테고리의 다른 글
백준 1027 : 고층 건물 (0) | 2021.08.14 |
---|---|
백준 3182 : 한동이는 공부가 하기 싫어! (0) | 2021.08.14 |
백준 9081 : 단어 맞추기 (0) | 2021.08.11 |
백준 5710 : 전기 요금 (0) | 2021.08.10 |
백준 10026 : 적록색약 (0) | 2021.08.09 |