
가 의 배수이면서 의 배수이면 “FizzBuzz”를 출력합니다.
가 의 배수이지만 의 배수가 아니면 “Fizz”를 출력합니다.
가 의 배수가 아니지만 의 배수이면 “Buzz”를 출력합니다.
가 의 배수도 아니고 의 배수도 아닌 경우 를 그대로 출력합니다.
내가 함정에 빠진 문제 그리고 한시간을 소비했던 부분
연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요. 여러 문자열이 올 수 있는 경우, 아무거나 하나 출력하세요.
그래서 랜덤으로 숫자가 나오는줄 알았고, 출력 2 결과값이
980803
980804
FizzBuzz
ㄴ>980804
import java.util.Scanner;
public class FizzBuzz {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Fizznum = 0;
int idx = 0;
for(int i=0; i<3; i++) {
String s = sc.next();
if(!s.equals("Fizz") && !s.equals("Buzz") && !s.equals("FizzBuzz")) {
Fizznum = Integer.parseInt(s);
idx = i;
}
}
int next = Fizznum + (3-idx);
// FizzBuzz 출력
if(next % 3 == 0 && next % 5 == 0)
System.out.println("FizzBuzz");
else if(next % 3 == 0)
System.out.println("Fizz");
else if (next % 5 == 0)
System.out.println("Buzz");
else System.out.println(next);
sc.close();
}
}
if(!s.equals("Fizz") && !s.equals("Buzz") && !s.equals("FizzBuzz")) {
Fizznum = Integer.parseInt(s);
idx = i;
Fizz Buzz FizzBuzz가 아니고 입력이 숫자라면 Fizznum을 숫자에 저장한다. (딱 한번만)

ps. 거의 정답에 근접했다고 생각했는데 진짜 아직 멀었다... 라고 쓰는 일요일 오전