알고리즘/BOJ

백준 15721번 번데기

꾸준함. 2018. 6. 17. 16:02

문제 링크입니다: https://www.acmicpc.net/problem/15721


중앙대 CodeRace 2018 문제였습니다.

처음 번은 뻔과 데기를 번갈아가면서 외치고 이후에는 cnt번 뻔을 외친 후 cnt번 데기를 외치는 형식이므로 반복문을 잘 적용하면 풀 수 있는 문제였습니다.


#include <iostream>

using namespace std;

 

int A, T, chant;

 

int Tth(void)

{

        int bbun = 0;

        int degi = 0;

        int cnt = 2; //1회차에 두번 반복

 

        while (1)

        {

                 //처음 2번은 번갈아가며

                 for (int i = 0; i < 4; i++)

                 {

                         if (i % 2 == 0)

                                 bbun++;

                         else

                                 degi++;

 

                         if (bbun == T && chant == 0)

                                 return (bbun + degi - 1) % A;

                         if (degi == T && chant == 1)

                                 return (bbun + degi - 1) % A;

                 }

 

                 //그 다음에는 cnt번 뻔 이후 cnt번 데기

                 for (int i = 0; i < cnt; i++)

                 {

                         bbun++;

                         if (bbun == T && chant == 0)

                                 return (bbun + degi - 1) % A;

                 }

                 for (int i = 0; i < cnt; i++)

                 {

                         degi++;

                         if (degi == T && chant == 1)

                                 return (bbun + degi - 1) % A;

                 }

                 cnt++; //회차 증가

        }

}

 

int main(void)

{

        cin >> A >> T >> chant;

 

        cout << Tth() << endl;

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 15723번 n단 논법  (0) 2018.06.17
백준 15722번 빙글빙글 스네일  (0) 2018.06.17
백준 1256번 사전  (0) 2018.06.17
백준 1182번 부분집합의 합  (0) 2018.06.16
백준 2309번 일곱난쟁이  (2) 2018.06.16