티스토리 뷰


처음 든 생각
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을 쓰면 다양하게 응용할 수 있을 것 같다!
'항해99 개발일지' 카테고리의 다른 글
같은 숫자는 싫어! / filter 메소드 (0) | 2022.03.15 |
---|---|
항해99 1주차 WIL (0) | 2022.03.14 |
메소드를 잘 알면 몸이 편하다. / map(), 삼항연산자 (0) | 2022.03.12 |
flask, jinja2 / 항해 1주차 프로젝트 최대의 난관 (0) | 2022.03.10 |
항해99 사전학습 4주차 (0) | 2022.02.07 |