시스템 설계 면접 질문 너무 개방적이어서 올바른 준비 방법을 알기가 너무 어렵습니다. 이제 구매 후 Amazon, Microsoft 및 Adobe의 디자인 라운드를 해독할 수 있습니다. 이 책은. 매일 수정 하나 디자인 질문 그리고 나는 당신이 디자인 라운드를 깨뜨릴 수 있다고 약속합니다.
Fizz Buzz 문제에서 우리는 숫자 n을 지정했습니다. 현 주어진 조건에서 1에서 n까지의 숫자 표현 :
- 3의 배수로 "Fizz"를 인쇄합니다.
- 5의 배수로 "Buzz"를 인쇄합니다.
- 3과 5의 배수로 "FizzBuzz"를 인쇄합니다.
- 그렇지 않으면 숫자를 문자열 형식으로 인쇄하십시오.
차례
예
입력:
N = 4
출력:
1
2
활기
4
Fizz Buzz 용 알고리즘
- 1부터 n까지의 숫자를 반복합니다 (루프 변수는 i).
- 모든 숫자에 대해 3과 5로 나눌 수 있다면 i % 3 = 0 및 i % 5 = 0을 클릭 한 다음 "FizzBuzz"를 인쇄하십시오.
- 그렇지 않으면 숫자가 3으로 나눌 수있는 경우 즉, i % 3 = 0을 클릭 한 다음 "Fizz"를 인쇄하십시오.
- 그렇지 않으면 숫자가 5으로 나눌 수있는 경우 즉, i % 5 = 0,“Buzz”를 인쇄하십시오.
- 그렇지 않으면 숫자를 문자열로 인쇄하십시오.
실시
Fizz Buzz Leetcode 용 C ++ 프로그램
#include<bits/stdc++.h> using namespace std; void fizzbuzz(int n){ for(int i=1;i<=n;i++){ if(i%3 == 0 && i%5==0){ cout<<"Fizzbuzz\n"; } else if(i%3 == 0){ cout<<"Fizz\n"; } else if(i%5 == 0){ cout<<"Buzz\n"; } else{ cout<<to_string(i)<<"\n"; } } } int main(){ int n; cin>>n; fizzbuzz(n); }
14
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14
Fizz Buzz Leetcode 용 JAVA 프로그램
import java.util.Scanner; class Main { static void fizzbuzz(int n){ for(int i=1;i<=n;i++){ if(i%3 == 0 && i%5==0){ System.out.println("Fizzbuzz"); } else if(i%3 == 0){ System.out.println("Fizz"); } else if(i%5 == 0){ System.out.println("Buzz"); } else{ System.out.println(Integer.toString(i)); } } } public static void main(String args[]) { int n; Scanner sc = new Scanner(System.in); n = sc.nextInt(); fizzbuzz(n); } }
7
1 2 Fizz 4 Buzz Fizz 7
변화
4로 나눌 수있는 숫자에는 "Fizz"를, 8로 나눌 수있는 숫자에는 "Buzz"를 쓰고 유효한 답을 인쇄합니다. 이 경우 8로 나눌 수있는 숫자는 4이 8의 배수이므로 4로 나눌 수 있습니다. 따라서 8의 배수에서 "Fizz"또는 "Buzz"를 선택할 수 있으므로이 질문에 대해 여러 개의 유효한 답이있을 수 있습니다. 주의 깊게 관찰해도 4로 나눌 수있는 모든 숫자를“Fizz”로 바꿀 수 있습니다. 이것도 유효한 답이 될 것입니다.
참고 : 주어진 숫자가 서로 여러 개이면 유효한 답을 여러 개 가질 수 있음을 확인 했으므로이 질문을 해결하는 동안주의 깊게 관찰하십시오.
복잡성 분석
시간 복잡성
O (N) 여기서 n은 우리에게 주어진 숫자입니다. 문자열 형식을 인쇄하려면 1에서 N까지 모든 숫자를 한 번씩 탐색해야합니다.
공간 복잡성
O (1) 여분의 보조 공간을 사용하거나 만들지 않기 때문입니다.
