반응형
문제
두 값을 더해서 나오는 합 중 가장 많이 나오는 합의 숫자를 출력하시오.
주의
풀이
# 정다면체
import sys
n, m = map(int, input().split())
# n과 m의 합의 값을 담아둘 리스트를 만들고 크기를 n과 m을 더하고 좀 여유있게 3만큼 추가한 크기를 주었습니다.
cnt = [0]*(n+m+3)
# 정수 자료형 최소값을 넣어줍니다.
max=-2147000000
for i in range(1, n+1):
for j in range(1, m+1):
# cnt에 n과m의 합을 인덱스 넘버로 설정하고 값은 합이 같을 때 1씩 증가시켜 줍니다.
cnt[i+j] += 1
# 최대 값을 찾기 위해 max에 누적시켜줍니다.
for i in range(n+m+1):
if cnt[i]>max:
max=cnt[i]
# 최대 값이 같은게 여러개 있을 수도 있으니 모두 출력을 위해서 최대값이 같은 n+m의 합을 찾아 출력합니다.
for i in range(n+m+1):
if cnt[i]==max:
print(i, end=' ')
두 합을 인덱스 번호로 정하고 합의 중복 횟 수를 값으로 넣어 체크합니다.
반응형
'Algorithm > 파이썬 알고리즘 문제풀이 (코딩테스트대비)' 카테고리의 다른 글
[파이썬 알고리즘 문제풀이] : 소수 구하기 (에라토스테네스의 체) (0) | 2021.12.21 |
---|---|
[파이썬 알고리즘 문제풀이] : 자릿수의 합 (0) | 2021.12.20 |
[파이썬 알고리즘 문제풀이] : K번째 수 (0) | 2021.12.10 |
[파이썬 알고리즘 문제풀이] : 대표값 (0) | 2021.12.10 |
[파이썬 알고리즘 문제풀이] : k번째 큰 수 (0) | 2021.12.08 |
댓글