최소, 최대 정사각형 찾기 1 이상한 컴파일 에러가...

  • mark3236
    mark3236

    MMRECT1를 풀고 있습니다.
    아래의 코드를 컴파일러에서 예제 input으로 실행해보면 문제가 없이 실행되는데, 여기에 submit할 때만 계속 non zero return code라고 나옵니다.
    로직에 문제가 있나요...?(print 부분만 주석처리해서 제출해보니 에러가 아닌 오답으로 뜨는데.... print가 에러를 내뿜는 방법은 min이나 max가 도무지(?) str으로 변환 불가능한 경우일 뿐이고, 분명 전 min과 max를 초기화한 다음에 유일하게 수정하는 경우는 d를 대입하는 경우고, d가 이상한 값이 들어갈 수가 있냐 하면, abs니까 문제가 없고. abs 속의 c[j][0]-c[p][0] 또한 그냥 c니까(그것도 초기화한 c) 값이 무조건 int일테고..... 아아 모르겠습니다 ㅜㅜ)

    로직 설명:
    좌표 수만큼 for문을 돌립니다. 한 점을 고르고, 그 점과 x좌표가 같은 놈을 하나 찾습니다. 그리고 나면 그 속에서 for문으로 또 들어가서 나머지 중 y좌표가 같고 사이의 거리가 같은 것을 찾습니다. 그리고 나면 또 for문으로 들어가서 두번째, 세번째 고른 점과 각각 x좌표와 y좌표가 같은 점을 찾습니다.
    찾는데에 성공했다면 최소/최대값 정보에 대입한 뒤 계속 진행합니다.
    마지막에 그 값들을 프린트합니다(그리고 제가 아는 바로는 여기에서 런타임 에러가 뜹니다)

    T=int(raw_input())
    for t in range(T):
        n=int(raw_input())
        c=[[0,0] for i in range(50)]
        for k in range(n):
            c[k]=map(int, raw_input().split())
        min=0
        max=0
        for i in range(n):
            for j in range(i+1, n):
                #if x coordinates are same
                if(c[i][0]==c[j][0]):
                    #find y-matching coordinates
                    for l in range(i+1, n):
                        #now we have three points like ㄱ
                        if(c[i][1]==c[l][1] and abs(c[i][1]-c[j][1])==abs(c[i][0]-c[l][0])):
                            for p in range(i+1, n):
                                if(c[j][1]==c[p][1] and c[l][0]==c[p][0]):
                                    d=abs(c[j][0]-c[p][0])
                                    if(min==0 or min>d):
                                        min=d
                                    if(max<d):
                                        max=d
        print (str(min)+" "+str(max))
    

    9년 전
7개의 댓글이 있습니다.
  • JongMan
    JongMan

    음.. 왜 print 제거했을때 오답으로 나왔는지는 모르겠는데, 파이썬에서 유니코드를 소스코드에 사용하시려면 맨 첫줄에

    # -*- coding: utf-8 -*-

    이 줄을 붙여주셔야 합니다. https://www.python.org/dev/peps/pep-0263/ 를 참조하세요. 정확하게는 "we have three points like ㄱ" 때문에 오류가 난 듯 합니다


    9년 전 link
  • mark3236
    mark3236

    답변 감사합니다. 그런데, 그 주석을 제거해도 오류가 납니다. ㅜㅜ
    print절에서 확실히 문제가 있는듯합니다.


    9년 전 link
  • Kureyo
    Kureyo

    흠 제가 받아서 해봤는데 통과하는데요..? ㅠㅠㅜ


    9년 전 link
  • riceluxs1t
    riceluxs1t

    저도 shameleslly 'ㄱ' 지우고 제출햇더니 정답


    9년 전 link
  • mark3236
    mark3236

    ...지우고 하니까 이제 되네요;;; 답변주신 분들 감사합니다. OTL
    군대 사지방에서 컴파일러도 없이 뿜뿜되면서 하려니까 오답률도 치솟고 이거 참 재밌네요 허허
    으어어


    9년 전 link
  • riceluxs1t
    riceluxs1t

    저도 군인 ㅎ. JMBook 캐리받는중


    9년 전 link
  • hyunhwan
    hyunhwan

    http://ideone.com 을 통해서 작성하시는 방법을 추천합니다.


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.