항해99 TIL [12/6]

이지연·2021년 12월 6일
0

항해99 TIL

목록 보기
23/33
post-thumbnail

실전 프로젝트가 끝나고 새로운 한 주가 또 시작되었다. 나는 이번 주와 다음 주 동안 백준 사이트에서 알고리즘 학습 및 추후엔 개인공부를 하기로 했고, 오늘 TIL에는 백준 사이트에서 풀었던 알고리즘 문제에 대해 정리해보고자 한다.

설탕배달

사용자로부터 설탕 무게를 입력 받고 3kg과 5kg 봉지를 최소로 사용해 담으면 몇봉지가 나오는지를 계산하는 문제로, 만약 정확히 떨어지지 않는다면 -1을 반환하는 문제.

단계별 알고리즘

1) 5kg 에 설탕을 빠짐없이 담을 수 있다면 (입력 값이 5로 나눠떨어진다면) 입력값을 5로 나눈 몫을 출력하고 프로그램 종료

2) 5kg 에 설탕을 빠짐없이 담을 수 없다면 3kg 봉지에 한 번 담기 (봉지 카운트는 1 증가, 입력값은 3 감소)

3) 만약 입력값이 0보다 작아지면 -1을 출력하고 프로그램 종료

단계별 해결법

1) Box 변수와 inp 변수를 두고, inp 변수에는 int(input()) 을 이용해 사용자의 입력을 받고, Box 변수를 통해 발생하는 봉지수를 카운트 함.

2) while True 를 이용해 무한 루프를 만들어 줌.

3) while 문 내에 if 문을 넣어 inp 값이 5로 나눠지면 Box내에 inp 값을 5로 나눈 몫을 넣고 그 값을 프린트 한 후, while 문을 종료. 만약 그렇지 않다면 inp 값을 3 감소시키고 Box 값을 하나 증가시켜줌.

▶ 여기서 파이썬 코드는 C나 다른 언어들처럼 ++ 연산자를 사용할 수 없으며, 따라서 꼭 += 1 을 사용하여 1씩 증가시켜야 함.

4) 마지막으로 또다른 if를 사용해 inp 값이 0보다 작아지면 -1을 출력하고 while 문을 종료시켜 줌.

profile
개발하는 디자이너입니다.

0개의 댓글