Link https://www.acmicpc.net/problem/15947
소스결과 1988 KB / 0 ms
출처 Baekjoon, UCPC 2018
언어 C++
분류 수학
설명
커피를 마신 석환이가 "아기 석환" 노래를 부를때 n 번째로 부르는 단어가 무엇인지 출력해주자
크게 고려할 사항이 없다. 14번마다 내용이 반복되기 때문에 경우를 나누어주면 된다.
tururu와 turu가 계속 ru의 개수가 늘어나기 때문에 경우만 나누어서 출력해준다.
알고리즘
1. 수 n을 입력 받는다.
2. n -1 을 14로 나눈 몫을 저장한다.
3. n -1 을 14로 나눈 나머지의 값에 해당하는 문자열을 출력한다.
3 - 1. 나머지가 tururu나 turu에 해당하는 경우 ru를 2에서 저장한 몫만큼 추가해서 더해준다.
3 - 2. ru의 개수가 5 이상일 때는 tu + ru * k의 형태로 출력한다.
소스코드
#include <iostream>
using namespace std;
int main()
{
int input;
int repeat;
int say;
cin >> input;
input--;
repeat = input / 14;
int tururu = 2 + repeat;
say = input % 14;
if (say == 0 || say == 12)
cout << "baby";
else if (say == 1 || say == 13)
cout << "sukhwan";
else if (say == 4)
cout << "very";
else if (say == 5)
cout << "cute";
else if (say == 8)
cout << "in";
else if (say == 9)
cout << "bed";
else
{
tururu -= say % 2;
if (tururu >= 5)
cout << "tu+ru*" << tururu;
else
{
cout << "tu";
for (int i = 0; i < tururu; i++)
cout << "ru";
}
}
return 0;
}