백준 28702번 FizzBuzz(Java)

마뇽미뇽·2024년 7월 13일
0

알고리즘 문제풀이

목록 보기
76/165

1.문제

https://www.acmicpc.net/problem/28702

2.풀이

문자열이 숫자인지를 구분해야 풀 수 있는 문제로 정규표현식을 사용해야 했으며
https://djun95.tistory.com/16 님을 참고했다.

3.코드

package com.example.baekjoon;

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

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

        for(int i = 3; i > 0; i--){ 
            String s = br.readLine();
            if(s.matches("-?\\d+(\\.\\d+)?")){  //  정규 표현식을 사용
                int n = Integer.parseInt(s) + i;    
                //  3부터 시작해야하는 이유
                //  3번 반복한다고 i < 3으로 둔다면 마지막 수에 3을 더하는게 되어버려서 예제 1을 기준으로 했을때 14가 나와버림
                //  거꾸로 생각해보면 예제1 출력값은 12 입력값들은 9 10 11이므로 3 2 1 크기로 감소하게 해야한다.
                if(n % 3 == 0){
                    if (n % 5 == 0) {
                        System.out.println("FizzBuzz");
                    }else {
                        System.out.println("Fizz");
                    }
                } else if (n % 5 == 0) {
                    System.out.println("Buzz");
                }else {
                    System.out.println(n);
                }
                return; //  강제종료
            }
        }
    }
}```
profile
Que sera, sera

0개의 댓글