Coding Test/[프로그래머스] Java

[프로그래머스 / Java] Lv.0 세균 증식

annovation 2025. 1. 3. 12:52

Question

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


Code

방법 1. 비트 이동 연산자(shift operator) 

// 비트 이동 연산자 사용
class Solution {
    public int solution(int n, int t) {
        int answer = 0;
        
        answer = n << t;
        
        return answer;
    }
}

 

  • answer = n << t : 비트 이동 연산자(shift operator)
    • 왼쪽이동 (<<) : n의 이진수 표현에서 각 비트를 왼쪽으로 t칸 이동시키고, 오른쪽 빈 자리를 0으로 채웁니다. = n × (2^t)
    • 오른쪽이동 (>>) : n의 이진수 표현에서 각 비트를 오른쪽으로 t칸 이동시키고,음수와 양수 여부에 따라 왼쪽 빈 자리를 채웁니다.

방법 2. for문

class Solution {
    public int solution(int n, int t) {
        int answer = n;

        for(int i = 0; i < t; i++){
            answer = answer + answer; 
        }
        return answer;
    }
}

 

방법 3. Math.pow()

class Solution {
    public int solution(int n, int t) {
        int answer = 0;
        
        answer = n*(int)Math.pow(2,t);
        return answer;
    }
}

 

  • Math.pow() : 두 개의 실수(double) 값을 입력으로 받아서 첫 번째 값을 두 번째 값의 거듭제곱으로 계산한 결과를 반환
double result = Math.pow(base, exponent);
  • base : 밑(base), 거듭제곱의 기준 값
  • exponent : 지수(exponent), 거듭제곱 횟수
  • 반환값 : base를 exponent번 거듭제곱한 결과를 반환 (결과는 double 타입)
  • ex. Math.pow(2, 3)의 결과는 8.0입니다.