파이썬 알고리즘 111 번 | [백준 4153 번] 직각삼각형

Yunny.Log ·2022년 1월 27일
0

Algorithm

목록 보기
114/318
post-thumbnail

111. 직각삼각형

1) 어떤 전략(알고리즘)으로 해결?

  • 빗변의 제곱이 나머지 두 아이의 제곱의 합인지

2) 코딩 설명

0,0,0, 받을 때까지는 계속 입력 받을 수 있도록 함
if~elif로 경우의 수를 세서 진행

<내 풀이>


index = 0
cnt = 0
arr = [0]*30000
m,n,l= map(int,input().split())
while m!=0 and n!=0 and l!=0 :
    if m>n and m>l and m**2==n**2+l**2 :
        print("right")
    elif n>m and n>l and n**2==m**2+l**2 :
        print("right")
    elif l>n and l>m and l**2==n**2+m**2 :
        print("right")
    else :
        print("wrong")
    m,n,l= map(int,input().split())

<다른 분의 풀이>

출처 : 출처


while True:
        a = list(map(int, input().split()))
        max_num = max(a)
        if sum(a) == 0:
                break
        a.remove(max_num)
        if a[0] ** 2 + a[1] ** 2 == max_num ** 2:
                print('right')
        else:
                print('wrong')

<반성 점>

  • 너무 일일히 나는 비교를 해서 좀 그렇다..
    array로 받아서 그 안에서 max인 친구 구하고 그 아이를 remove한 후 그 아이들의 제곱의 합을 구하는 방식도 있드라 참신하다
    remove를 자주 애용하도록 하자
    map 으로 받을 때도 무조건 int 가 아니라 list 로 감싸주면서 배열로 받을 수 있을지 think think

<배운 점>

.remove() 를 통해 배열 안의 값 제거 가능

0개의 댓글