2023. 9. 29. 22:54, 알고리즘/프로그래머스
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