ny2485   2년 전

여기에서 4번쨰줄에 while문에 대해 궁금한게있습니다.

n>=0 일때라는 조건을 붙였는데

while Truth:로 하면 왜 안되는지 궁금합니다.

n은 "첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)" 이렇게 주어질텐데

n이 3이상이아니라 왜 0이상이라는 조건을 붙일까요..?! ㅠㅜ 

prk4224   2년 전

저도 코린이라서 정확하게는 모르겠는데 저렇게 코드를 만들면 수가 커졌을때 출력이 여러개 되지 않을까요 ? 예를들어 41이면 (5-7개, 3-2개 / 5-4개, 3-7개 / 5-1개, 3-12개) 이렇게 9, 11,13이 출력 될꺼같은데요 ? 저라면 for문 안에 if문을 추가하거나 할꺼 같습니다.

dapin1490   2년 전

아래 사이트에서 실행해보니 리스트는 정수로 사용될 수 없다는 오류 메시지가 나왔습니다.

온라인 컴파일러 사이트 : https://www.tutorialspoint.com...

오류 메시지

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    for i in range(a):
TypeError: 'list' object cannot be interpreted as an integer

리스트 a에 있는 요소를 순서대로 사용하도록 하고 싶으면 range 없이 쓰면 됩니다. 아래 코드처럼요.

for i in a:

덧붙여 for문 안에 출력문이 들어가 있어서 오류를 고치더라도 출력이 여러 번 됩니다. 출력문을 반복문 밖에 두어야 합니다.

mireuk1058   2년 전

while True를 조건으로 쓰게 되면 음수가 될때까지 3을 빼면서 정확하게 n킬로그램을 만들 수 없는 경우에도 숫자를 출력하려고 하겠죠?

dapin1490   2년 전

그 경우를 판별하는 if를 넣으면 됩니다. while true:에 n이 딱 나누어 떨어져서 답을 완성했을 경우의 break와 나누어 떨어지지 않아 n이 음수가 되어버렸을 경우의 break를 넣으면 되고, 출력문은 선택문 안에 같이 넣거나 while 밖에 넣을 수 있습니다. 이제보니 맨 처음 질문하신 내용에는 제대로 대답을 못해드렸네요. 이번 답변이 도움이 되었길 바랍니다.

댓글을 작성하려면 로그인해야 합니다.