[백준] 10101: 삼각형 외우기 - 파이썬[python]

다인·2024년 8월 22일

백준

목록 보기
43/112
post-thumbnail

바로 전 포스팅에서 파이썬스럽게 코딩한다는 말 백번 취소......... 파이썬 함수만을 활용하려다가 돌아갔다....

1. 내장함수 사용

angle = [int(input()) for _ in range(3)]

if angle.count(60) == 3:
    print("Equilateral")
elif sum(angle) == 180 and len(set(angle)) == 2:
    print("Isosceles")
elif sum(angle) == 180 and len(set(angle)) == 3:
    print("Scalene")
else:
    print("Error")
  • 개행문자로 분리되어 입력받을 때 리스트로 저장하고 싶을 땐 저렇게!
  • 처음에는 for문을 돌면서 index를 하나하나 찾아서 count를 해야 하나.. 했는데 개수만 세는 거니까 set함수 이용! set은 집합이라고 생각하면 쉽다.

2. 쉽게쉽게

a = int(input())
b = int(input())
c = int(input())

if a+b+c == 180:
    if a == b == c:
        print("Equilateral")
    elif a==b or b==c or a==c:
        print("Isosceles")
    else:
        print("Scalene")
else:
    print("Error")
  • 그냥 a, b, c로 받으면 쉬운 걸 ㅎㅎㅎ..
  • 3개끼리는 1. 모두 같다 2. 두 개만 같다 3. 모두 다르다 이 3가지 경우밖에 없다!

결과

시간이 같은 걸 보니 내장함수는 속도에 별로 영향을 안 끼치나? 아님 넘 간단해서 그런 건강

번외

1번 코드를 아래처럼 쓰면, 먼저 합이 180인지를 검사하기 때문에 시간을 단축할 수 있을 거라 생각했다. 그런데 아니더라..

angle = [int(input()) for _ in range(3)]

if sum(angle) != 180:
    print('Error')
elif angle.count(60) == 3:
    print('Equilateral')
elif len(set(angle)) == 2:
    print('Isosceles')
else:
    print('Scalene')

gpt왈 특정케이스에서는 1번 코드가 더 빠를 수 있어서 그런거래.. 흐음 어쨋든 굳이 필요없는 and 연산은 줄여주었다.

0개의 댓글