티스토리 뷰

항해99 개발일지

콜라츠 추측 / while

변기원 2022. 3. 12. 20:58

처음 든 생각

1. 작업을 반복하고 그 반복작업의 횟수를 세어라? for를 한번 돌때마다 횟수가 +1

2. 1이 나올때까지 반복? 그럼 for에서 값이 1이 될때 return 해준다.

3. 500번 반복해도 1이 안나오면 -1? for문을 500번 도는 동안 return을 만나지 않으면 그냥 -1 보낸다.

숫자가 들어오면 for문을 500번동안 도는 동안, 계산을 거치게 된다. 그리고 다시 for문으로 돌아와서 1인지 아닌지 확인하고 아직 1이 안됐으면 또 for문을 돌린다. 6의 경우 for문을 8번 돌면 1이 된다.

6>3>10>5>16>8>4>2>1

1이 되면 else로 들어와서 for문을 몇번 돌았는지에서 그 몇번에 해당하는 숫자가 answer에 배정된다.

만약 500번이 다되도록 1이 나오지 않아서 그냥 for문을 나오게 되면 단순하게 -1을 넣어준다!

이것은 다른분이 작성하신 코드이다. while에 대해 알아두면 이런 경우에 쉽게 풀수있다.

while(조건문){반복코드} 이런식으로 작성이 되고 조건문이 true인 경우 반복수행한다.

조건문이 false가 될때까지 계속 수행한다.

위 코드에서는 num이 계산과정을 거쳐서 1이 되거나 or 500이 되면 false가 되어 while문을 나온다.

반복되는 동안 count를 계속 1씩 증가시켰다.

나중에 return에서 계산을 거친 num 이 1인지 확인하고 그렇다면 count를 return하면 되고,

만약 1이 아닌데 return에 왔다는 건 500번을 넘겼다는 뜻이니까 그냥 -1을 return한다.

while 안에 and, or을 쓰면 다양하게 응용할 수 있을 것 같다!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함