syaoran215   3년 전

안녕하세요. 백준에 질문글 올리는 것은 처음이네요 ㅎㅎ
최근에 업무상 golang을 사용해보고자 문법 공부겸...(문법공부는 알고리즘이 최고잖아요 !!)
다시 풀어보던중...
도저히 어디가 잘못되었는지 모르겠어서 질문 드립니다.

우선 문제에서 주어진 테스트 케이스

3
0 0 13 40 0 37
0 0 3 0 7 4
1 1 1 1 1 5
2
1
0

으로 정답이 맞게 나오며

추가로 제가 테스트한 케이스

8
0 0 1 0 0 1
0 0 1 0 2 1
0 0 2 0 1 1
0 0 1 2 2 1
0 0 5 0 1 1
0 0 1 0 1 1
1 2 5 0 1 2
0 0 3 2 0 2
-1
1
1
0
0
2
0
2

각각

- 0 0 1 0 0 1 : 내접하는 동일한 원 
    - (-1)
- 0 0 1 0 2 1 : 한 점에 외접하는 원  
   - (1)
-  0 0 2 0 0 1 : 한 점에 내접하는 원
    - (1)
- 0 0 1 2 2 1 : 접하지 않는 외접원
   - (0)
- 0 0 5 0 0 1  : 접하지 않는 외접원
    - (0)
- 0 0 1 0 1 1 : 두 점에 외접하는 원
   - (2)
- 1 2 3 0 1 2  : 접하지 않는 내접원 
   - (0)
- 0 0 3 2 0 2 : 두점에 접하는 내접원
   - (2)

의 상황으로 테스트 케이스는 맞게 나온다고 생각하고 있습니다.

그리고 같은 코드를 파이썬으로 풀었을 경우엔 패스가 되어서
어디가 틀렸는지 충고부탁드립니다.

감사합니다.

ps. 파이썬코드 첨부합니다(소스코드 창을 하나 더 추가 하는 방법을 몰라서 텍스트로 첨부합니다)
https://gist.github.com/pignua...

T = int(input())
for _ in range(T):
    x1, y1, r1, x2, y2, r2 = list(map(int, input().split()))
    dist = (x2-x1) * (x2-x1)+(y2-y1) * (y2-y1)
    rd = (r2-r1) * (r2-r1)
    rs = (r2+r1) * (r2+r1)
    C = "0"
    if dist == 0 and rd == 0:
        C = "-1"
    else:
        if dist in (rd, rs):
            C = "1"
        elif rd < dist < rs:
            C = "2"
    print(C)

bupjae   3년 전

이 프로그램의 입력 데이터는 음수도 가능합니다.

10~18번째 줄의 nextInt() 는 음수를 입력받을 수 없습니다.

syaoran215   3년 전

bupjae  아..아아아아.... 감사합니다 ㅠㅠㅠㅠ

댓글을 작성하려면 로그인해야 합니다.