백준 15721 번데기 (Java,자바)

jonghyukLee·2023년 4월 10일
0

이번에 풀어본 문제는
백준 15721번 번데기 입니다.

📕 문제 링크

❗️코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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

        A = Integer.parseInt(br.readLine());
        T = Integer.parseInt(br.readLine());
        BD = Integer.parseInt(br.readLine());

        System.out.print(play());
    }
    static int play() {
        int b = 0, d = 0;
        int n = 2;
        while (true) {
            for (int i = 0; i < 4; i++) {
                if (i % 2 == 0) {
                    b++;
                    if (b == T && BD == 0) return (b + d - 1) % A;
                }
                else {
                    d++;
                    if (d == T && BD == 1) return (b + d - 1) % A;
                }
            }

            for (int i = 0; i < n; i++) {
                b++;
                if (b == T && BD == 0) return (b + d - 1) % A;
            }

            for (int i = 0; i < n; i++) {
                d++;
                if (d == T && BD == 1) return (b + d - 1) % A;
            }
            n++;
        }
    }
}

📝 풀이

번데기라는 게임을 A명이 즐길 때, T번째로 뻔 또는 데기를 외치는 사람의 순서를 찾는 문제입니다.
범위가 크지 않기 때문에 그냥 주어진 대로 반복문을 돌리면 해결할 수 있습니다.
괜히 코드 중복이 많아 굉장히 거슬리지만.. 꾹 참았습니다 ㅋㅋㅋㅋ 평소에도 이런거 깔끔하게 만든다고 시간을 많이 쓰는 편인데, 알고리즘은 정답을 맞추는게 우선인 만큼 이런 부분에서도 시간을 줄여야 한다고 생각합니다!

profile
머무르지 않기!

0개의 댓글