출처 : https://www.acmicpc.net/problem/10101
주어진 조건을 통해 파이썬으로 코드를 작성하면 먼저 입력을 받을 input값이 필요합니다.
a,b,c 3개의 입력 값을 필요로 하는데, 이는 입력 되야 할 값이 3개이므로 (삼각형의 세 변) 입력 또한 3개가 필요하겠지요?
이를 파이썬 코드로 작성하면 아래와 같이 작성하게 됩니다.
a=int(input())
b=int(input())
c=int(input())
이 다음으로 문제에서 주어진 조건을 활용하여 코드를 작성합니다.
이 때 "세 각의 합이 180이 아닌 경우에는 Error" 라는 부분을 놓쳐서 오답이 나왔는데 제가 작성한 잘 못된 코드 부끄럽지만 한 번 보고 가겠습니다...!
a,b,c=list(map(int, input().split()))
if a==0 and b==0 and c==0:
break
elif a==b and b==c:
print("Equilateral")
elif a==b or b==c or a==c:
print("Isosceles")
elif a!=b and b!=c:
print("Scalene")
오답이 나오게 된 코드인데 보시다시피 입력 또한 split()을 이용해서 띄어쓰기로 받는데다가 a+b+c=180 이 아닌 경우 Error가 나와야 된다는 조건 또한 없기에 당연하게도 "틀렸습니다" 가 나올 수 밖에 없었던거 같네요..ㅠㅠ
(정확하게는 "런타임에러" 가 나왔는데 a,b,c=list(map(int, input().split())) 이 부분이 문제가 된게 아닌가 예상 중 입니다.)
그래서 부족했던 코드를 보수하고 다시 제출했더니 다행히 정답이더라구요!
지금부터는 작성한 코드를 한 줄 한 줄 보며 간단한 리뷰를 하겠습니다 ㅎㅎ
세 각의 크기가 모두 60이면, Equilateral
입력 될 a,b,c의 값이 다 60이 되야 하기에 a,b,c 입력 값이 전부 60이 되어야겠죠?
if a==60 and b==60 and c==60:
print("Equilateral")
세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles
이 경우는 입력값 a,b,c 중 두 개의 값이 서로 같아야 되겠죠?
elif a==b or b==c or c==a:
print("Isosceles")
세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene
마지막 경우는 같은 각이 없어야 되므로 a,b,c가 전부 다 서로 다른 값이 되어야 할 겁니다!
elif a!=b and b!=c:
print("Scalene")
여기에 가장 중요한 부분을 빼먹을뻔 했네요!
바로 세 각의 합이 180이 아닌 경우에는 Error 이 부분인데요
이를 해주기 위해선 위에 주어진 3가지 조건들의 위에 또 if문을 붙여 이중 if문을 활용해서 처리했답니다!
따라서 총 정리 된 제가 생각한 코드는
a=int(input())
b=int(input())
c=int(input())
if a+b+c==180:
if a==60 and b==60 and c==60:
print("Equilateral")
elif a==b or b==c or c==a:
print("Isosceles")
elif a!=b and b!=c:
print("Scalene")
else:
print("Error")
이상 10101 문제 파이썬 풀이 마무리입니다!
부족한게 많은 사람이지만 귀한 걸음 해주셔서 감사합니다!
다들 하시는 모든게 잘 되시길 바랍니다!