반응형
https://programmers.co.kr/learn/courses/30/lessons/12899
글쓴이의 답
개인적인 풀이 임으로
이것보다 더 좋은 알고리즘은 많음...
이렇게도 풀이하는구나.. 공유하기 위해 올림...
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(int n) {
string answer = "";
vector<int> ternary;
do {
int div = n/3;
int rem = n%3;
n = div;
ternary.insert(ternary.begin(), rem);
}while(n >= 3);
if(n != 0){
ternary.insert(ternary.begin(), n);
}
bool check = false;
for(int i = ternary.size()-1; i >= 0; i--){
int temp = ternary[i];
if(true == check){
temp -= 1;
check = false;
if(0 > temp ){
check = true;
temp =2;
}
if((temp == 0) &&(i == 0)){
break;
}
}
if(0 == temp){
answer = "4" + answer;
check = true;
}
else{
answer = to_string(temp) + answer;
}
}
return answer;
}
꾸준히 하다보면 실력이 늘겠지..
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스][C++] 더 맵게 (0) | 2022.03.21 |
---|---|
[프로그래머스][C++] 기능개발 (0) | 2022.03.21 |
[프로그래머스][C++] 멀쩡한 사각형 (0) | 2022.03.20 |
[프로그래머스][C++] 단체사진 찍기 (0) | 2022.03.20 |
[프로그래머스][C++] 카카오프렌즈 컬러링북 (0) | 2022.03.20 |