티스토리 뷰


1. 주어진 수가 1이라면 0을 반환
2. 주어진 수가 짝수면 2로 나누고, 홀수면 3을 곱한 후 1을 더함
3. 결과 수가 1이 될 때까지 반복함
4. 반복 횟수가 500을 넘으면 -1을 반환함
해당 순서에 맞게 반복문과 조건문을 결합해주면 다음과 같다.
function solution(num) {
let count = 0;
while (num !== 1) {
if (count >= 500) {
return -1;
}
if (num % 2 === 0) {
num = num / 2;
} else {
num = num * 3 + 1;
}
count++;
}
return count;
}
더 좋은 다른 사람의 코드는 다음과 같다.
function collatz(num) {
var answer = 0;
while(num !=1 && answer !=500){
num%2==0 ? num = num/2 : num = num*3 +1;
answer++;
}
return num == 1 ? answer : -1;
}
삼항연산자를 사용해 간결함을 잡았다.
'Oops, All Code! > 🤯 Oops, My Algorithm!' 카테고리의 다른 글
| ♡̈ 18. 프로그래머스:: 행렬의 덧셈 (2) | 2024.07.13 |
|---|---|
| ♡̈ 17. 프로그래머스:: 최대공약수와 최소공배수 (0) | 2024.07.13 |
| ♡̈ 15. 프로그래머스:: 서울에서 김 서방 찾기 (0) | 2024.07.12 |
| ♡̈ 14. 프로그래머스:: 약수의 합 (0) | 2024.07.12 |
| ♡̈ 13. 프로그래머스:: 음양 더하기 (0) | 2024.07.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 안성스타필드
- 비즈플리마켓
- 회고
- 일급객체
- 프론트엔드
- 카드뉴스
- 대학생팝업스토어
- 부스트캠프
- 프리코스
- 웹풀스택
- 소사벌
- 서평
- react
- js
- 프로토타입
- 책추천
- 네이버부스트캠프
- 어른의어휘공부
- javascript
- 어휘력
- typescript
- 경험플리마켓
- 코딩테스트
- 도서리뷰
- 도서추천
- 소사벌맛집
- 대학생플리마켓
- 우아한테크코스
- 트러블슈팅
- 카페추천
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
글 보관함