반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지
- AI
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.
- 알버트
- 패스트캠퍼스후기
- 패캠챌린지
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online
- 직장인자기계발
- 한번에끝내는Java/Spring웹개발마스터초격차패키지
- SKT
- R
- 직장인인강
- 패스트캠퍼스
- albert
Archives
- Today
- Total
제주 탈출 일지
[C++] 프로그래머스 레벨 1 - 3진법 뒤집기 본문
728x90
반응형
programmers.co.kr/learn/courses/30/lessons/68935?language=cpp
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
10진법 수를 3진법으로 바꾸고, 1200이라면 0021으로 바꾼뒤 다시 10진법으로 변환하는 문제.
여러방법이 있겠지만 그냥 일반적으로 변환하는 방법처럼 나눈뒤 나머지를 모아서 vector에 담은 뒤 reverse_iteratot를 사용하여 반대로 더해나갔다. 이 과정에서 pow(제곱)함수를 사용했다.
어려운 문제가 아니니 쉽게 풀 수 있을 것이다.
#include <string>
#include <vector>
#include <math.h>
using namespace std;
int solution(int n) {
int answer = 0;
vector<int> three;
int tmp = n;
for(;tmp != 0;){
//45 1 2 0 0
three.push_back(tmp%3);
tmp /= 3;
}
vector<int>::reverse_iterator iter;
int i = 0;
for(iter = three.rbegin(); iter != three.rend(); ++iter){
answer += *iter * pow(3,i);
i++;
}
return answer;
}
728x90
반응형
'코딩 테스트' 카테고리의 다른 글
[C++] 프로그래머스 레벨 1 - 문자열 내 마음대로 정렬하기 (0) | 2020.10.28 |
---|---|
[C++] 프로그래머스 레벨 1 - 같은 숫자는 싫어 (0) | 2020.10.27 |
[C++] 프로그래머스 레벨 1 - 가운데 글자 가져오기 (0) | 2020.10.27 |
[C++] 프로그래머스 레벨 1 - 2016년 (0) | 2020.10.27 |
[c++][python] 프로그래머스 레벨 1 - 체육복 (2) | 2020.10.27 |
Comments