새소식

인기 검색어

TL

20/12/25 TL.

  • -

오늘 할 일

공개소프트웨어 실습 보고서 작성

장학금 서류 준비

알고리즘 문제 풀이

데이터톤 서류 준비

 

내일 할 일

강의 종류 정하기

알고리즘 문제 풀이


백준 2839번 나의 풀이(python)

def run():
    sugar = int(input())
    num = 5
    count = 1

    if sugar == 4 or sugar == 7:
        return -1

    while num <= sugar:
        num += 5
        count += 1

    num -= 5
    count -= 1

    if num == sugar:
        return count

    while num >= 0:
        while num <= sugar:
            num += 3
            count += 1

        num -= 3
        count -= 1

        if num == sugar:
            return count
        num -= 5
        count -= 1

    return -1


if __name__ == '__main__':
    print(run())

다른 사람의 풀이 (출처 : velog.io/@stal/%EB%B0%B1%EC%A4%80-python-2839-%EC%84%A4%ED%83%95%EB%B0%B0%EB%8B%AC-%ED%92%80%EC%9D%B4)

a = int(input())
b = 3
c = 5
result = 0

while (a != 0):
    if a % c == 0:
        a -= c
        result += 1
    elif a % b == 0:
        a -= b
        result += 1
    elif a > c:
        a -= c
        result += 1
    else:
        result = -1
        break

print(result)

 

내 코드는 성능을 늘리기 위해, 반복문 안에서 반복된 문장의 수를 줄이려고 했으나, 2중 반복문에다가 수식이 길어 직관력이 떨어진다. 코드를 보고 다른 사람들도 단번에 이해할 수 있게 잘 압축하도록 노력해보자.

'TL' 카테고리의 다른 글

20/12/29 TL. 백준 16507, Introduction to Cloud Computing 1주차  (0) 2020.12.29
20/12/28 TL.  (0) 2020.12.28
20/12/01 TL.  (0) 2020.12.01
20/11/27 TL.  (0) 2020.11.27
20/11/26 TL.  (0) 2020.11.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.