https://school.programmers.co.kr/learn/courses/30/lessons/12943?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 풀이
다시 알고리즘 공부를 한 이후, 유일하게 자료를 참고하지 않은 문제!
(자료 안 찾아보고 푸는 게 당연한 거지만.. 오랜만에 공부를 다시 시작해서 감을 익히고 있는 과정이다😂)
그도 그럴 것이, 난이도 굉~ 장히 쉽고 딱히 복잡한 연산이 필요하지도 않았다
그래서 추석땜에 케텍스로 내려가는 길에.. 호다닥 푼 스낵 문제
하지만 다른 분들이 푼 코드가 궁금해서 본 결과, '삼항연산자' 를 이용해 깔끔하게 푼 코드가 인상적이었다!
개발할 땐 자주 사용하는데, 알고리즘 풀 때는 별로 안 사용하는듯..?
훨씬 깔끔해지는 건 사실이니까 앞으로 자주 이용해봐야겠다
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;
}
위가 다른 분들이 푼 코드이다
2) 최종 소스코드
function solution(num) {
let answer = 0;
while(num!==1){
if(num%2===0){
num=num/2;
}
else if(num%2===1){
num=num*3+1;
}
++answer;
if(answer===500){
answer=-1;
break;
}
}
return answer;
}
728x90
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JavaScript] 기능개발 (1) | 2022.10.01 |
---|---|
[프로그래머스/JavaScript] 나머지가 1이 되는 수 찾기 (0) | 2022.09.08 |
[프로그래머스/JavaScript] 시저 암호 (0) | 2022.09.08 |
[프로그래머스/JavaScript] 나누어 떨어지는 숫자 배열 (0) | 2022.09.07 |
[프로그래머스/JavaScript] 문자열 내림차순으로 배치하기 (0) | 2022.09.06 |