728x90
- 관련 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120910
"어떤 세균은 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 |
댓글