본문 바로가기

카테고리 없음

Baekjoon 15947 아기 석환 뚜루루 뚜루

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;
}