[Python] 백준 10101 삼각형 외우기

Cloud_ Ghost·2022년 6월 11일
0

Python

목록 보기
1/10

출처 : 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 문제 파이썬 풀이 마무리입니다!
부족한게 많은 사람이지만 귀한 걸음 해주셔서 감사합니다!
다들 하시는 모든게 잘 되시길 바랍니다!

profile
도망쳐서 도착한 곳에 낙원이란 있을 수 없는 거야.

0개의 댓글