Lv 0. 세균 증식

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

 

2의 제곱 형태가 필요해서 cmath 헤더에 있는 pow() 함수를 사용하였다. 해당 함수를 사용하지 않고 반복문을 통해서 2를 계속 곱하는 형태로 코드를 작성해도 좋을것 같다. 

#include <string>
#include <vector>
#include <cmath>
using namespace std;

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

 

다른 사람의 풀이를 보니까, 내가 작성한 풀이와 비교했을때, 아주아주 마음에 드는 풀이가 있어서 이를 첨부한다. 

 

#include <string>
#include <vector>
using namespace std;
int solution(int n, int t) {
    return n << t;
}

 

위의 코드의 경우 쉬프트 연산자를 활용해서 n이라는 값의 비트 위치를 좌측으로 t 만큼 이동해서 2를 t제곱한 형태의 코드를 만들었다. 

비트쉬프트 연산자를 생각할 수 있었는데, 그걸 생각하지 못한게 이번 내 풀이에서 조금 아쉽기도 하다. 2의 거듭제곱 형태였으면 비트쉬프트 연산자를 충분히 떠올려서 사용해볼만 했는데. 다음에는 이걸 떠올려서 문제를 풀어보도록 하자. 

이 풀이 아주 마음에 든다. 

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

Lv 0. 7의 개수  (0) 2023.10.01
Lv 0. 문자열 정렬하기  (0) 2023.09.29
Lv 0. 제곱수 판별하기  (0) 2023.09.29
Lv 0. 문자열안에 문자열 *다시 풀어보기* **매우중요**  (0) 2023.09.29
Lv 0. OX퀴즈  (0) 2023.09.28
  Comments,     Trackbacks