이 튜토리얼에서는 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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.