파이썬2021. 4. 14. 15:08
728x90

[ 원래 코드 ]

 

a,b,c=map(int,input().split())
num=0

for i in range(0,a):
    for j in range(0,b):
        for k in range(0,c):
            print(i,j,k)
            num+=1

print(num)

 

-> 시간초과에러가 발생했다..

심지어 정답 코드랑도 동일하던데..

답변에는 새벽시간에 내라, 정답의 복잡도는 O(N^3)이다 이런 말 밖에 없었다..

 


 

[ 고친 코드 ]

print()함수는 한 번 실행되는 시간이 오래 걸리기 때문에 시간초과가 걸렸다고 한다.

그래서 다음과 같이 string에 결과를 추가해서 마지막에 한 번 출력하는 방향으로 진행했다. (@ji.o.n.e의 도움으로..)

 

a,b,c=map(int,input().split())
num=0
answer=''

for i in range(0,a):
    for j in range(0,b):
        for k in range(0,c):
            answer+=str(i)+' '+str(j)+' '+str(k)+'\n'
            num+=1

print(answer,num,sep='')

 

 

[ 결과 ]

 

그래도 여전히 시간이 많이 걸리기는한다.

아무튼 해결!!

 

 

[ Code Up 해당 문제 ]

codeup.kr/problem.php?id=6083

 

[기초-종합] 빛 섞어 색 만들기(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

※ 제 글이 도움이 되었다면 공감 부탁드려요 :)

반응형
Posted by mminky