하루한줄 코딩일기
[인프런 - 파이썬 알고리즘 문제풀이] 2.5 정다면체 본문
섹션 2.5 정다면체
👊 내 문제 풀이
arr 리스트에 N+M 의 모든 경우의 수를 저장하고, Counter를 사용해 각 숫자 별 발생 빈도를 확인한다. arr 리스트의 길이 만큼 반복문을 돌며, value가 가장 높은 발생 빈도와 일치할 경우 해당 key값을 출력한다.
import collections
n, m = map(int, input().split())
arr = []
for i in range(1,n+1):
for j in range(1,m+1):
arr.append(i+j) # N + M의 모든 경우의 수 저장
arr = collections.Counter(arr) # 숫자와 발생 빈도를 딕셔너리에 저장
max = max(sorted(list(arr.values()))) # 가장 높은 발생 빈도 (ex.4회)
for i in range(len(arr)):
if (list(arr.values())[i] == max): # 가장 높은 발생 빈도를 가질 경우
print(list(arr.keys())[i]) # key값 출력
채점 결과
💡 강의 해답
합해서 나온 값을 cnt 리스트의 인덱스로 하고, 해당 값이 나올 때 마다 그 인덱스에 +1씩 해주는 방식을 사용했다.
n, m=map(int, input().split())
cnt=[0]*(n+m+3)
max=0
for i in range(1, n+1):
for j in range(1, m+1):
cnt[i+j]=cnt[i+j]+1
for i in range(n+m+1):
if cnt[i]>max:
max=cnt[i]
for i in range(n+m+1):
if cnt[i]==max:
print(i, end=' ')
'Algorithm' 카테고리의 다른 글
[백준] 2단계: if문(1~5번) - 파이썬(Python) (0) | 2022.01.25 |
---|---|
[백준] 1단계: 입출력과 사칙연산(1~13번) - 파이썬(Python) (0) | 2022.01.24 |
[인프런 - 파이썬 알고리즘 문제풀이] 2.4 대표값 (0) | 2022.01.24 |
[프로그래머스] 두 개 뽑아서 더하기(LV.1) - 파이썬(Python) (0) | 2022.01.24 |
[인프런 - 파이썬 알고리즘 문제풀이] 2.3 K번째 큰 수 (0) | 2022.01.24 |
Comments