본문 바로가기
Algorithm/Baekjoon

Baekjoon 15947 아기 석환 뚜루루 뚜루 JAVA

by Hunveloper 2022. 5. 15.
728x90
 

15947번: 아기 석환 뚜루루 뚜루

첫 번째 줄에 석환이가 N번째로 부를 단어를 출력한다. 여기서 단어란 가사 중 공백으로 구분되는 연속된 알파벳 소문자열을 뜻한다. 단, 출력할 단어가 “tururu...ru”일 때, “ru”가 k(k ≥ 5)번

www.acmicpc.net

문제

석환이는 오늘 낮에 커피를 마셔서 잠에 들지 못하고 있다. 이불 속에서 너무 심심한 나머지 “아기 석환” 노래를 잠에 들 때까지 부르려고 한다. 석환이는 UCPC 2018 출제진 중의 한 명인 석환(seokhwan)이랑은 달리, 자신의 이름을 sukhwan이라고 쓴다. 노래가 끝나면 다시 처음부터 부른다. 아기 석환 노래는 아래와 같다.

baby sukhwan tururu turu
very cute tururu turu
in bed tururu turu
baby sukhwan

하지만 석환이는 계속 노래를 똑같이 부르기는 심심해서, 노래가 한 번 끝날 때마다 “tururu”와 “turu”에 “ru”를 한 번씩 더 추가해서 다음과 같이 부르려고 한다.

baby sukhwan tururu turu
very cute tururu turu
in bed tururu turu
baby sukhwan

baby sukhwan turururu tururu
very cute turururu tururu
in bed turururu tururu
baby sukhwan

baby sukhwan tururururu turururu
very cute tururururu turururu
in bed tururururu turururu
baby sukhwan

이 때, 석환이가 부르는 노래의 N번째 단어는 무엇일까?

입력

첫 번째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.

출력

첫 번째 줄에 석환이가 N번째로 부를 단어를 출력한다. 여기서 단어란 가사 중 공백으로 구분되는 연속된 알파벳 소문자열을 뜻한다. 단, 출력할 단어가 “tururu...ru”일 때, “ru”가 k(k ≥ 5)번 반복되면 “tu+ru*k”와 같이 출력한다.

풀이

1. N번째로 부르는 단어를 체크한다.

2. 만약 그 단어가 tururu 혹은 turu이면 ru이 반복되어 나오기에 반복하여 출력함

3. 반복하는 단어는 나머지 연산을 이용하여 위치를 찾고, 횟수는 나누기 연산을 이용하여 값을 구한다.

코드
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] musics="baby sukhwan tururu turu very cute tururu turu in bed tururu turu baby sukhwan".split(" ");
		int n=sc.nextInt()-1;
		int k=n/14;
		if(musics[n%14].equals("tururu")){
			if(k<3)
				System.out.print("tu"+"ru".repeat(k+2));
			else
				System.out.print("tu+ru*"+(k+2));
		}
		else if(musics[n%14].equals("turu")) {
			if(k<4)
				System.out.print("tu"+"ru".repeat(k+1));
			else
				System.out.print("tu+ru*"+(k+1));
	 	}
		else
			System.out.print(musics[n%14]);
	}
}

 

728x90
728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

Baekjoon 2467 용액 JAVA  (0) 2022.05.17
Baekjoon 16441 아기돼지와 늑대 JAVA  (0) 2022.05.17
Baekjoon 3568 iSharp JAVA  (0) 2022.05.13
Baekjoon 10569 다면체 JAVA  (0) 2022.05.10
Baekjoon 11721 열 개씩 끊어 출력하기 JAVA  (0) 2022.05.10

댓글