๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

[Java] BOJ 28702 FizzBuzz

by ๐ŸŠ๊ทค๐ŸŠ 2024. 7. 13.

๋ฌธ์ œ 

๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/28702

    • โ€Š๊ฐ€ 3์˜ ๋ฐฐ์ˆ˜์ด๋ฉด์„œ ์˜ ๋ฐฐ์ˆ˜์ด๋ฉด “FizzBuzz”๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • โ€Š๊ฐ€ ์˜ ๋ฐฐ์ˆ˜์ด์ง€๋งŒ ์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฉด “Fizz”๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • โ€Š๊ฐ€ 3์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ 5์˜ ๋ฐฐ์ˆ˜์ด๋ฉด “Buzz”๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • โ€Š๊ฐ€ 3์˜ ๋ฐฐ์ˆ˜๋„ ์•„๋‹ˆ๊ณ  5์˜ ๋ฐฐ์ˆ˜๋„ ์•„๋‹Œ ๊ฒฝ์šฐ ๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.FizzBuzz ๋ฌธ์ œ๋Š” ์— ๋Œ€ํ•ด ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฌธ์ž์—ด์„ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
  • FizzBuzz ๋ฌธ์ œ์—์„œ ์—ฐ์†์œผ๋กœ ์ถœ๋ ฅ๋œ ์„ธ ๊ฐœ์˜ ๋ฌธ์ž์—ด์ด ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 8 ์ดํ•˜์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ์ด ํ•ญ์ƒ FizzBuzz ๋ฌธ์ œ์—์„œ ์—ฐ์†์œผ๋กœ ์ถœ๋ ฅ๋œ ์„ธ ๊ฐœ์˜ ๋ฌธ์ž์—ด์— ๋Œ€์‘๋จ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ์—ฐ์†์œผ๋กœ ์ถœ๋ ฅ๋œ ์„ธ ๊ฐœ์˜ ๋ฌธ์ž์—ด ๋‹ค์Œ์— ์˜ฌ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜์„ธ์š”. ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด์ด ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ, ์•„๋ฌด๊ฑฐ๋‚˜ ํ•˜๋‚˜ ์ถœ๋ ฅํ•˜์„ธ์š”.

์•„์ด๋””์–ด

  • ์ฒ˜์Œ์—๋Š” Fizz, Buzz, FizzBuzz์ด๋Ÿฐ์‹์œผ๋กœ ๋ฌธ์ž๋“ค๋งŒ ๋‚˜์˜ค๋ฉด ์ด ๋ถ€๋ถ„์ด ์–ด๋Š๋ถ€๋ถ„์ธ์ง€ ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์•Œ์ง€? ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ๊ณ ๋ฏผํ–ˆ์ง€๋งŒ ๊ทธ๋Ÿฐ์‹์œผ๋กœ ๋ฌธ์ž 3๊ฐœ๊ฐ€ ๋‚˜๋ž€ํžˆ ์˜ฌ์ผ์ด ์—†๋‹ค๋Š”๊ฒŒ ์ด ๋ฌธ์ œ์˜ ํฌ์ธํŠธ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ๋จผ์ € 3๊ฐœ๊ฐ€ ์ž…๋ ฅ์ด ๋˜๋ฏ€๋กœ 3๊ฐœ๋ฅผ ์ฐจ๋ก€๋กœ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด์„œ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์˜ ์ฒซ๋ฒˆ์งธ๋ฅผ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ธ์ง€ ์ˆซ์ž์ธ์ง€ ํŒ๋‹จํ–ˆ๋‹ค.
  • ๋Œ€๋ฌธ์ž์ผ ๊ฒฝ์šฐ, ๊ณ„์† ๋ฐ˜๋ณต๋ฌธ์ด ๋˜๊ณ  ์ˆซ์ž์ผ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ๋ช‡๋ฒˆ์งธ์— ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ช‡๋ฒˆ์งธ ๋’ค์— ๋‚˜์™€์•ผ ๋˜๋Š”์ง€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ๋ช‡๋ฒˆ์งธ ๋’ค์ธ์ง€๋ฅผ ๋”ํ•œ ๊ฐ’์ด ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•  ์ˆซ์ž์ด๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฐ์†๋œ ์ˆซ์ž๋งŒ ์ถœ๋ ฅ๋œ๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ, ๋งŒ์•ฝ 2๋ฒˆ์งธ์— ์ˆซ์ž๊ฐ€ ์ถœ๋ ฅ๋˜์—ˆ๋‹ค๋ฉด 3๋ฒˆ์งธ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ๊ทธ ๋‹ค์Œ์ด ์ถœ๋ ฅ๋˜์–ด์•ผ ๋˜๋Š” ์ˆซ์ž๋ฏ€๋กœ 2๋ฒˆ์งธ ์ˆซ์ž์— 2๋ฅผ ๋”ํ•ด์ค€ ๊ฐ’์ด ์ถœ๋ ฅ ์ˆซ์ž์ด๋‹ค.
  •  ๊ทธ๋ ‡๊ฒŒ ๊ตฌํ•œ ์ถœ๋ ฅ ์ˆซ์ž์— ๋”ฐ๋ผ if๋ฌธ์œผ๋กœ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด์„ ์ •ํ–ˆ๋‹ค. 

๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค

  • X

๋ฌด๋‚œ๋ฌด๋‚œํ–ˆ๋‹ค! (์ฒ˜์Œ์— ๊ทœ์น™๊นจ๋‹ซ๊ธฐ๊ฐ€ ์กฐ๊ธˆ ๊ฑธ๋ฆฌ๊ธด ํ–ˆ์ง€๋งŒ...ใ…Žใ…Ž)

์ฝ”๋“œ

import java.io.*;
import java.util.*;

public class BOJ28702 {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // ๊ฒฐ๊ณผ๊ฐ’์ธ ์ˆซ์ž๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜
        int result = 0;
        // ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅํ•  ๋ณ€์ˆ˜
        String out = "";

        // Fizz์™€ Buzz์™€ FizzBuzz๊ฐ€ ์—ฐ์†ํ•ด์„œ 3๊ฐœ๊ฐ€ ์˜ฌ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ
        // ์ž…๋ ฅ 3๊ฐœ์ค‘ ์ˆซ์ž๋ฅผ ์ฐพ์„ ๊ฒฝ์šฐ ๋ช‡๋ฒˆ์งธ ์ž…๋ ฅ ์ˆ˜์ธ์ง€์— ๋”ฐ๋ผ
        // ๊ฒฐ๊ณผ ์ˆซ์ž๋ฅผ ๊ตฌํ•จ
        for(int i = 0; i < 3; i++){
            String s = br.readLine();
            int n = 0;

            // ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์˜ ์•ž๊ธ€์ž๋ฅผ ๋–ผ์„œ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋น„๊ตํ•ด๋ดค์„๋•Œ,
            // ๋Œ€๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ˆซ์ž์ด๋ฏ€๋กœ
            if(s.charAt(0) < 65){
                // ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋’ค ๋ช‡๋ฒˆ์งธ ์ž…๋ ฅ์ˆซ์ž์ธ์ง€์— ๋”ฐ๋ผ
                // ๋ช‡๋ฒˆ์งธ ๋’ค์— ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๋Š”์ง€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ
                // ๊ทธ์— ๋งž๊ฒŒ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์คŒ
                n = Integer.parseInt(s);
                result = n + (3 - i);
                break;
            }
        }

        // ๊ฒฐ๊ณผ๊ฐ’์ด 3๊ณผ 5๋กœ ๋‚˜๋ˆด์„๋•Œ, ๋‘˜๋‹ค ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋ฉด
        if((result % 3 == 0) && (result % 5 == 0)){
            // ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์„ FizzBuzz๋กœ ์ €์žฅ
            out = "FizzBuzz";
        }

        // 3์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ, ๋‚˜๋จธ์ง€๋Š” 0์ด์ง€๋งŒ 5๋กœ ๋‚˜๋ˆด์„ ๋•Œ 0์ด ์•„๋‹ˆ๋ผ๋ฉด
        if((result % 3 == 0) && (result % 5 != 0)){
            // ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์„ Fizz๋กœ ์ €์žฅ
            out = "Fizz";
        }

        // 3์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ 0์ด ์•„๋‹ˆ์ง€๋งŒ 5๋กœ ๋‚˜๋ˆด์„ ๋•Œ, ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋ฉด
        if((result % 3 != 0) && (result % 5 == 0)){
            // ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์„ Buzz๋กœ ์ €์žฅ
            out = "Buzz";
        }

        // 3๊ณผ 5๋กœ ๋‚˜๋ˆด์„๋•Œ, ๋‚˜๋จธ์ง€๊ฐ€ ๋‘˜๋‹ค 0์ด ์•„๋‹ˆ๋ผ๋ฉด
        if((result % 3 != 0) && (result % 5 != 0)){
            // ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์„ ์ˆซ์ž๋กœ ์ €์žฅ
            out = result + "";
        }

        System.out.println(out);
    }
}