- 입력수가 짝수, 홀수에따라 다르게 처리하기
- 결과가 1이 될때까지 반복
위의 의사코드에서 간과한 부분이 있었다 1이 되지 않을때 -1로 반환되는 방법을
추가해야했다.
- 입력수가 짝수, 홀수에따라 다르게 처리하기
- 1이 아니고 500이 아닐떄까지 조건 (&&)
- 1일때는 0 아닐때는 -1 처리
코딩 테스트를할때 조건문을 사용할일이 많은데 주로 if, else문을 사용하다가 삼항 연산자를 사용하면 동일한 처리지만 더 직관적이고 코드 수를 줄일 수 있어서 삼항 연산자에대해 더 알아보려고 한다.
조건문 ? true 결과값 : false 결과값
var age = 26;
var beverage = age >= 21 ? "Beer" : "Juice";
console.log(beverage); // "Beer"
삼항 연산자는 if문 처럼 여러개의 조건으로도 사용 가능하다.
// 삼항연산자
function example(…) {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
// if문
function example(…) {
if (condition1) { return value1; }
else if (condition2) { return value2; }
else if (condition3) { return value3; }
else { return value4; }
}
1 이 아니고 그리고 500이 아닐때까지 삼항 연산자 조건문을 이용해서 반복해서 실행해주고 의사코드의 3번 조건처리로 1이 되지 않는다면 -1이 반환되도록 처리해줬다.
function solution(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;
}
삼항 연산자를 잘 사용하면 편하고 봤을때도 직관적이여서 좋은거 같다. 요즘 매일 알고리즘 문제를 풀고 있는데 이제는 그냥 문제만 푸는게 아니라 어떻게 해야 더 좋은 방법으로 해결할 수 있는지 한번 더 생각하며 코드를 작성해야겠다.