이 튜토리얼에서는 k번째 붐 번호를 찾는 프로그램을 작성할 것입니다.
2와 3만 포함된 숫자를 붐 넘버라고 합니다.
위의 문제를 해결하기 위한 단계를 살펴보겠습니다.
- k의 값을 초기화합니다.
- 문자열 대기열을 초기화합니다.
- 빈 문자열을 대기열로 푸시합니다.
- 카운터 변수를 0으로 초기화합니다.
- 카운터가 주어진 k보다 작거나 같을 때까지 반복하는 루프를 작성하십시오.
- 대기열의 맨 앞자리를 차지하세요.
- 대기열에서 요소를 팝니다.
- 대기열의 앞부분을 변수에 저장합니다.
- 앞에 2를 붙인 후 숫자를 누르세요.
- 카운터를 증가시키고 k가 카운터와 같은지 여부를 확인합니다.
- 카운터가 k와 같으면 값을 인쇄하고 중단합니다.
- 앞에 3을 붙인 후 숫자를 누르세요.
- 카운터를 증가시키고 k가 카운터와 같은지 여부를 확인합니다.
- 카운터를 증가시키고 k가 카운터와 같은지 여부를 확인합니다.
예시
코드를 봅시다.
#include<bits/stdc++.h>
using namespace std;
void findKthBoomNumber(long long k) {
queue<string> queue;
queue.push("");
long long count = 0;
while (count <= k) {
string numberOne = queue.front();
queue.pop();
string numberTwo = numberOne;
queue.push(numberOne.append("2"));
count++;
if (count == k) {
cout << numberOne << endl;
break;
}
queue.push(numberTwo.append("3"));
count++;
if (count == k) {
cout << numberTwo << endl;
break;
}
}
}
int main() {
long long k = 45;
findKthBoomNumber(k);
return 0;
} 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
23332
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.