FizzBuzz

FinalForever·2026년 1월 11일
post-thumbnail

BaekJoon 28702

ii33의 배수이면서 55의 배수이면 “FizzBuzz”를 출력합니다.
ii33의 배수이지만 55의 배수가 아니면 “Fizz”를 출력합니다.
ii33의 배수가 아니지만 55의 배수이면 “Buzz”를 출력합니다.
ii33의 배수도 아니고 55의 배수도 아닌 경우 ii를 그대로 출력합니다.

내가 함정에 빠진 문제 그리고 한시간을 소비했던 부분

연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요. 여러 문자열이 올 수 있는 경우, 아무거나 하나 출력하세요.

그래서 랜덤으로 숫자가 나오는줄 알았고, 출력 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. 거의 정답에 근접했다고 생각했는데 진짜 아직 멀었다... 라고 쓰는 일요일 오전

profile
No More Struggle & Machine Mind

0개의 댓글