본문 바로가기
Algorithm/Programers

세균 증식

by 꼬부기가우는소리 2023. 6. 5.
728x90

 

- 관련 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120910

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

"어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요."

 

아래는 단순하게 시간동안 2씩 곱해주는 로직이다.

#include <string>
using namespace std;

int solution(int n, int t) {
    for (int i = 0; i < t; i++)
        n *= 2;
    return n;
}

 

 

계산해보면 1시간마다 x2 씩 늘어나는 것이므로, 간단하게 n * (2^(t)) 공식을 적용해줄 수 있다.

#include <cmath>
using namespace std;

int solution(int n, int t) {
    return n * pow(2, t);
}

 

 

이를 Shift 연산으로도 풀어줄 수 있다. 왼쪽으로 비트열을 이동함으로써 t번의 2의 배수 곱을 수행해줄 수 있다.

using namespace std;
int solution(int n, int t) {
    return n << t;
}
728x90

'Algorithm > Programers' 카테고리의 다른 글

피자 나눠 먹기 (2)  (0) 2023.06.06
피자 나눠 먹기 (1)  (0) 2023.06.06
자릿수 더하기  (0) 2023.06.06
모스부호 (1)  (0) 2023.06.05
A로 B 만들기  (0) 2023.06.05

댓글