- Qusetion
- My Code
#include <string> #include <vector> using namespace std; int solution(int num) { int answer = 0; long long n = num; for(int i = 0 ; i < 500; i++) { if(n == 1) break; if(n % 2 == 1) n = 3 * n +1; else n /= 2; answer++; } if(answer >= 500) return -1; else return answer; }
- Better Code
#include<iostream> using namespace std; int collatz(int num) { int answer = 0; cout<< num <<"\n"; while(answer++ <= 500){ num = num%2 ==0 ? num/2 : num*3+1; if(num == 1) break; } return answer > 500 ? -1 : answer; } int main() { int testCase = 6; int testAnswer = collatz(testCase); cout<<testAnswer; }
" int 정수의 범위를 파악하자. "
- CheckPoint
- int 형 n의 정수형 수용범위를 확인하고, 필요할시 long이나 long long
- > 형을 사용할 생각을 하자.
- 이제는 짝수or홀수로 조건문의 조건을 작성할 때 if( n & 1 ) 형태를 기억.
%연산자보다 비트연산자가 처리속도가 빠르다.- 3항연산자를 잘 쓰면 코드가 짧아진다.
728x90
반응형
'Algorithm Practice > [ 프로그래머스 ]' 카테고리의 다른 글
[프로그래머스][#42746] 가장 큰수 (0) | 2020.09.12 |
---|---|
[프로그래머스] [#42587] 프린터 (0) | 2020.09.11 |
[ 프로그래머스 ] [ #12926 ] 시저 암호 (0) | 2020.09.08 |
[ 프로그래머스 ] [ #12903 ] 가운데 글자가져오기 (0) | 2020.09.06 |
[ 프로그래머스 ] [ #12915 ] 문자열 내 마음대로 정렬하기 (0) | 2020.09.05 |