(백준/Java) 15947번 : 아기 석환 뚜루루 뚜루

2021. 5. 25. 01:30·CodingTest

난이도: Bronze 1

프로그래밍 언어: Java

문제명: 아기 석환 뚜루루 뚜루

푼일자: 2021년 5월

 

주소: https://www.acmicpc.net/problem/15947

 

문제풀기

먼저 입력된 값에 따라 위치를 찾아 가사를 도출을 해내야합니다.

 

해당 알고리즘 먼저 작성을 해봅니다.

1
2
3
4
5
6
7
8
9
10
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
sc.close();
 
String lyrics = "baby sukhwan tururu turu very cute tururu turu in bed tururu turu baby sukhwan";
String[] arr_lyrics = lyrics.split(" ");
 
int re = a % arr_lyrics.length;
if (re == 0) System.out.println(arr_lyrics[arr_lyrics.length - 1]);
else System.out.println(arr_lyrics[re - 1]);
Colored by Color Scripter
cs

 

그리고 실행을 해 봅니다.

원하던 값이 정상적으로 도출되었습니다.

 

이제 가사가 한번씩 반복이 될때마다 tururu의 ru를 더해주고 ru가 5회 초과할 경우 다른 문자열로 출력할 수 있도록 작업을 해 줍니다.

 

완성된 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Scanner;
 
public class question_15947 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        sc.close();
 
        String lyrics = "baby sukhwan tururu turu very cute tururu turu in bed tururu turu baby sukhwan";
        String[] arr_lyrics = lyrics.split(" ");
 
        int re = a % arr_lyrics.length;
        if (re == 0) System.out.println(arr_lyrics[arr_lyrics.length - 1]);
        else {
            String cur_str = arr_lyrics[re - 1];
            if (cur_str.contains("turu")) {
                int counting = a / arr_lyrics.length;
                if (cur_str.contains("tururu"))
                    if (counting >= 3) System.out.println("tu+ru*" + (counting + 2));
                    else  System.out.println(cur_str + getRuRuRu(a / arr_lyrics.length));
                else
                    if (counting >= 4) System.out.println("tu+ru*" + (counting + 1));
                    else  System.out.println(cur_str + getRuRuRu(a / arr_lyrics.length));
            } else System.out.println(cur_str);
        }
    }
 
    public static String getRuRuRu(int count) {
        StringBuilder sb = new StringBuilder();
        while(count-- != 0) sb.append("ru");
        return sb.toString();
    }
}
Colored by Color Scripter
cs

 

 

Java 언어로 채점 현황을 봤는데 저 포함 6명이 합격을 받으신 분들이 계셨었어요!

다른 분들의 풀이를 보니 완전 다르게 접근하신 분도 계시고, 저와 다르게 한줄로 길게 작성하시는 분들도 많았습니다.

보면서 하나씩 더 배워가고, 아쉬웠던건 contains 가 아닌 길이로 체크했다면

메모리를 더 적게 먹었지 않았을까 싶습니다.

반응형
저작자표시 비영리 (새창열림)
'CodingTest' 카테고리의 다른 글
  • (백준/Kotlin) 11050번 : 이항 계수 1
  • (백준/Java) 별 찍기 모음 (1,3,5,7,9,13,15,17,21)
  • (프로그래머스/Java) 짝지어 제거하기
  • (백준/Java) 14624번 : 전북대학교
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
    • 분류 전체보기 (185)
      • 대문 (2)
      • Tips (25)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (53)
        • 도서 (1)
        • 개발 (8)
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 최근 글

  • 인기 글

  • 태그

    java
    코딩테스트
    github
    Plugin
    spring
    Kotlin
    codingtest
    알고리즘
    bronze2
    bronze1
    갤럭시
    c#
    minecraft
    후기
    Silver5
    error
    Spring Boot
    Windows
    Algorithm
    백준
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.0
Kua
(백준/Java) 15947번 : 아기 석환 뚜루루 뚜루
상단으로

티스토리툴바