반응형

프로그래밍/파이썬

반응형
반응형

이번에 푼 노래는, 아니 문제는 [백준 15947번 - 아기 석환 뚜루루 뚜루]다.

 

문제 풀면서 노래 계속 흥얼거리게 됨 ㅋㅋ

 

이 노래는 사실 세계적으로 유명한 노래다. 이 노래는 유튜브에서 Baby Shark Dance라는 노래로 유튜브 최다 조회수 2번째에 랭크되어 있다.(2020년 3월 15일 기준) 조회수가 무려 47억 6천만이다.

 

 

 

자 노래를 다 한 번씩 듣고 왔다면 (노래가 머리 속에서 계속 맴돌 것이므로 여러분들의 오늘 코딩공부는 여기서 끝이다.) 계속 글을 써 나가보도록 하겠다.

 


 

*정답

n = int(input())

if n % 14 == 1:
    print("baby")
elif n % 14 == 2:
    print("sukhwan")
elif n % 14 == 3 or n % 14 == 7 or n % 14 == 11:
    if n // 14 >= 1 and n // 14 < 3:
        print("turu" + "ru"*(n//14+1))
    elif n // 14 >= 3:
        print("tu+"+"ru*"+str(n//14+2))
    else:
        print("tururu")
elif n % 14 == 4 or n % 14 == 8 or n % 14 == 12:
    if n // 14 >= 1 and n // 14 < 4:
        print("turu" + "ru"*(n//14))
    elif n // 14 >= 4:
        print("tu+"+"ru*"+str(n//14+1))
    else:
        print("turu")
elif n % 14 == 5:
    print("very")
elif n % 14 == 6:
    print("cute")
elif n % 14 == 9:
    print("in")
elif n % 14 == 10:
    print("bed")
elif n % 14 == 13:
    print("baby")
elif n % 14 == 0:
    print("sukhwan")

이 문제 또한 처음에 너무 막막해서 다른 블로그를 참고하며 풀었다. 

 

이러면 안되는 걸 알면서도 처음부터 너무 겁을 먹는 것 같다. 고쳐나가야 할 버릇이다.

 

사용자로부터 입력받는 것은 n번 째 해당되는 수이므로 n에 따라서 출력되는 문자열이 달라야 한다.

 

그런데 이 문자열은 14개의 단어로 되어 있다. 그리고 우리는 n번째 문자가 아닌 단어를 알고 싶은 것이기 때문에 n의 나머지 값을 알면 된다.

 

이렇게 까지만 했으면 쉬운 문제였을텐데, 석환이는 노래를 n회 할 때마다 tururu와 turu 뒷 부분에 ru를 한 번 더 붙여서 노래를 부른다. 

 

그래서 노래에서 tururu인 부분과 turu인 부분을 조금 손 봐줬다. 그냥 n번만큼 노래를 더 부를 때 ru를 n번만큼 더 추가해주되, ru가 5번이 넘어가는 시점을 찾아서 elif를 넣어서 tu+ru*N으로 해줬다.(여기서 N은 5이상의 수)

 

 

후기 : 이전에 공부했던 C언어에서는 문자열이 굉장히 어려운 부분이라고 생각되었는데 파이썬에서는 이 부분이 사람에게 친숙하게 변한 것 같다. 

반응형

+ Recent posts