프로그래밍/파이썬
파이썬 백준 15947번 아기 석환
이번에 푼 노래는, 아니 문제는 [백준 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언어에서는 문자열이 굉장히 어려운 부분이라고 생각되었는데 파이썬에서는 이 부분이 사람에게 친숙하게 변한 것 같다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 2차원 배열 입력받기 백준 2566번 (0) | 2020.03.19 |
---|---|
백준 17173번 배수 파이썬 풀이 (0) | 2020.03.16 |
백준 14624번 파이썬 풀이 (0) | 2020.03.15 |
백준 11718번 파이썬 try except 구문 기초 (0) | 2020.03.14 |
파이썬 시작, 백준 16561 파이썬 풀이 (0) | 2020.03.14 |