728x90

프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 내용, 조건, 예시는 프로그래머스 사이트 참조
알고리즘
- 진수 변환에 문제는 mod(모드; %) 연산자를 활용하는 것이 효율적
- 124나라는 3진수와 동일함
아래의 표에 필요한 계산값을 정리함

패턴을 분석하면
- %(mod) 연산은 1, 2, 0 순으로 반복
→ string("412")로 구성 후 index 접근 가능 - / (나눗셈) 연산은 0, 0, 1 패턴으로 반복
→ 3번째 값만 다른 2개의 값보다 1이 많음
→ 3개씩 묶어서 같은 자리수가 되기 때문에 3번째 값에는 -1을 해줌 - 나머지 값을 결과값 앞으로 붙임
→ 1의 자리부터 채워나감 - 나눗셈 몫이 0이 되면 종료
→ 0이 아니면 1)부터 다시 반복

위의 조건을 만족해서 while문으로 구성해주면 완료!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <string> #include <vector> using namespace std; std::string solution(int n) { std::string answer = ""; int stand_num = 3; while (n > 0) { int remainder_result = n % stand_num; n = n / stand_num; if (remainder_result == 0) { n -= 1; } answer = "412"[remainder_result] + answer; } return answer; } | cs |
↓↓↓↓↓↓ 유익했다면 하트 뿅 ♥ ↓↓↓↓↓↓
728x90
반응형
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
| Lv2_[올바른 괄호, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.03.29 |
|---|---|
| Lv2_[가장 큰 정사각형 찾기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.03.27 |
| Lv1_[개인정보 수집 유효기간, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.02.08 |
| Lv1_[크기가 작은 부분문자열, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.02.07 |
| Lv1_[3진법 뒤집기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.01.16 |
댓글