티스토리 뷰
📚 문제

입력

출력

예제 입력 1
4 4
10 20 30 40
1 O X X X
2 X O X X
3 X X O X
4 X X X O
예제 출력 1
4 40
예제 입력 2
4 8
10 20 30 40
1 O X X X
2 X O X X
3 X X O X
4 X X X O
80 O O O O
70 O O O O
60 O O O O
50 O O O O
예제 출력 2
50 100
🧑🏻💻 풀이 과정
- 입력 받은 수험번호(
num
)을 딕셔너리(_dict
)에 추가하고, 반복하면서 채점결과(arr
)가O
라면 점수를 더 해주자. - 가장 높은 점수를 받은 학생 중, 가장 낮은 수험번호를 구하기 위해
min_student
를 1000001로 초기화하자. - 딕셔너리(
_dict
)를 반복하면서 최대 점수와 같은 요소의 k를min_student
와 비교해서 더 낮은 수험번호가 저장되도록 하자. print(min_student, max_val)
에는 가장 높은 점수를 받은 학생 중, 가장 낮은 수험번호와 가장 높은 점수가 출력된다.
def mid_score():
scores = list(map(int, input().split()))
len_score = len(scores)
_dict = {}
for i in range(m):
data = list(map(str, input().split()))
# num: 수험번호, arr: 채점결과
num, arr = data[0], data[1:]
_dict[num] = _dict.setdefault(num, 0)
for j in range(len_score):
# 정답(O)이면, 점수 더 해주기
if arr[j] == 'O':
_dict[num] += scores[j]
# min_student: 수험 번호는 최대 100_000
min_student = 100001
# max_val: 가장 높은 점수
max_val = max(_dict.values())
for k, v in _dict.items():
if v == max_val:
min_student = min(min_student, int(k))
print(min_student, max_val)
n, m = map(int, input().split())
mid_score()
'알고리즘' 카테고리의 다른 글
[algorithm] 백준 1764 - 듣보잡 (파이썬) (0) | 2022.09.06 |
---|---|
[algorithm] 백준 10815 - 숫자 카드 (파이썬) (0) | 2022.09.05 |
[algorithm] 백준 25192 - 인사성 밝은 곰곰이 (파이썬) (0) | 2022.09.03 |
[algorithm] 백준 11899 - 괄호 끼어넣기 (파이썬) (0) | 2022.09.02 |
[algorithm] 백준 1620 - 나는야 포켓몬 마스터 이다솜 (파이썬) (0) | 2022.09.01 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- leetcode
- 스프링부트
- 코틀린
- mysql 8.0
- 그리디
- 데이터베이스
- 문자열
- spring boot
- 북클럽
- 리팩토링
- 인프런
- Spring
- kotlin
- 스프링
- 노마드코더
- 코테
- 파이썬
- 자료구조
- 김영한
- 노마드
- Algorithm
- 정렬
- 알고리즘
- MySQL
- 백준
- Real MySQL
- 스프링 부트
- 구현
- 릿코드
- webflux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함