1002번 - 터렛
안녕하세요. 백준에 질문글 올리는 것은 처음이네요 ㅎㅎ최근에 업무상 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)
이 프로그램의 입력 데이터는 음수도 가능합니다.
10~18번째 줄의 nextInt() 는 음수를 입력받을 수 없습니다.
댓글을 작성하려면 로그인해야 합니다.
syaoran215 3년 전
안녕하세요. 백준에 질문글 올리는 것은 처음이네요 ㅎㅎ
최근에 업무상 golang을 사용해보고자 문법 공부겸...(문법공부는 알고리즘이 최고잖아요 !!)
다시 풀어보던중...
도저히 어디가 잘못되었는지 모르겠어서 질문 드립니다.
우선 문제에서 주어진 테스트 케이스
으로 정답이 맞게 나오며
추가로 제가 테스트한 케이스
각각
- 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)