[문제]
https://www.acmicpc.net/problem/2456
[풀이]
처음에는 다중조건문으로 분류해서 풀어가던 중 다른 사람은 제곱한 수를 비교했다는 걸 보고 충격받았다.. 그러고 보니 개수를 비교할 필요 없이 제곱하면 자동적으로 비교가 된다는 것...
제곱한 수를 더해 비교한다는 방법만 알면 쉽게 풀 수 있는 문제가 된다.
[코드]
if __name__ == '__main__':
candidate = [0] * 3
squared = [0] * 3
for _ in range(int(input())):
a, b, c = map(int, input().split())
candidate[0] += a
candidate[1] += b
candidate[2] += c
squared[0] += a ** 2
squared[1] += b ** 2
squared[2] += c ** 2
m = max(candidate)
if candidate.count(m) == 1:
for i in range(len(candidate)):
if candidate[i] == m:
print(i+1, m)
break;
else:
pow_m = max(squared)
elected = 0
for i in range(len(squared)):
if squared[i] == pow_m:
elected = i
break;
# 회장 선출 불가능한 경우
if squared.count(pow_m) > 1:
print(0, candidate[elected])
# 회장 선출 가능한 경우
else:
print(elected+1, candidate[elected])
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 2954번 창영이의 일기장 (0) | 2021.06.17 |
---|---|
[Python] BOJ/백준 1834번 나머지와 몫이 같은 수 (0) | 2021.06.17 |
[Python] BOJ/백준 2083번 럭비 클럽 (0) | 2021.06.17 |
[Python] BOJ/백준 2408번 큰 수 계산 (0) | 2021.06.16 |
[Python] BOJ/백준 2386번 도비의 영어 공부 (0) | 2021.06.16 |