inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 세균 증식

    silver's avatar
    silver
    Nov 22, 2024
    [알고리즘문제풀기] 세균 증식
     

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/120910
     

    내가 작성한 정답

    class Solution { public int solution(int n, int t) { return (int)Math.pow(2,t)*n; } }
    💡
    Math.pow(밑, 지수)의 타입은 double이다.
     
     

    다른 사람들이 작성한 정답

    class Solution { public int solution(int n, int t) { int answer = 0; answer = n << t; // n을 2의 t제곱으로 곱함 return answer; } }
    class Solution { public int solution(int n, int t) { int answer = n; for(int i=0; i<t; i++){ answer = answer+answer; } return answer; } }
    class Solution { public int solution(int n, int t) { for(int i = 0; i < t; i++) { n *= 2; } return n; } }
     
    💡

    << 연산자란?

    • 비트 왼쪽 시프트 연산자는 주어진 숫자의 이진 표현에서 비트를 왼쪽으로 이동시킨다.
    • 각 비트가 왼쪽으로 이동하며, 오른쪽에는 0이 채워진다.
    • 비트 연산은 곱셈보다 훨씬 빠르기 때문에 n * (2^t) 대신 n << t를 사용하면 계산 속도가 더 빠르다.
    💡
    n << t : n을 2의 t제곱으로 곱함
     
     
    Share article

    silver

    RSS·Powered by Inblog