강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

use_mono님의 프로필 이미지
use_mono

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 정다면체

궁금한 점이 있습니다.

해결된 질문

작성

·

220

0

처음에 제가 생각했던 로직은 for문을 2중으로 돌린  다음,

미리 생성한 리스트에 요소들을 전부 집어넣고

그 다음 각 요소들의 개수들을 출력해 가장 큰 값만 뽑아내려고 했습니다.

다만 제가 for문을 2중으로 돌린 후,

미리 생성한 리스트에 append함수를 써서 넣는 것까지는 성공을 했는데,

그 다음부터는 어떻게 구현해야 할지 몰라서 헤매게 되었습니다...

로직에 뭔가 문제가 있는 것 같아 강사님의 해법을 보니

이런 방식으로도 코드를 짤 수 있다는 걸 배웠습니다.

제가 생각했던 로직은 잘못된 건 아니지만 구현하기 조금 까다로울까요?

아니면 잘못된 방향성을 가진 것이었을까요?

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

구현하기가 까다로울 수 있습니다만, 잘못된 방향은 아닙니다.

use_mono님 생각처럼 한 번 짜봤습니다.

import sys
#sys.stdin=open("in1.txt", "r")
n, m=map(int, input().split())
nums=[]
res=[]
for i in range(1, n+1):
    for j in range(1, m+1):
        nums.append(i+j)

nums.sort()
L=len(nums)
nums.append(float('inf'))
maxN=0
cnt=1
for i in range(L):
    if nums[i]==nums[i+1]:
        cnt+=1
    else:
        maxN=max(maxN, cnt)
        res.append((nums[i], cnt))
        cnt=1
    
for a, b in res:
    if b==maxN:
        print(a, end=' ');
        

0

use_mono님의 프로필 이미지
use_mono
질문자

헉 역시 코딩은 계속 계속 해야하는 것인가 봅니다!

잘못된 방향성이 아니라고 말씀해주셔서 위로가 됩니다 ㅜㅜ

감사합니다!

use_mono님의 프로필 이미지
use_mono

작성한 질문수

질문하기