BOJ
백준 파이썬 11721 열 개씩 끊어 출력하기
Coding_SJ
2020. 3. 18. 03:41
내 풀이(굉장히 안좋고 긴 풀이)
1
2
3
4
5
|
l = list(map(str,input()))
n = len(l) // 10
for i in range(0, n+1):
print(*l[10*i:10*(i+1)],sep="")
|
cs |
문제를 읽고 효율적으로 짤 생각을 안하고, 그냥 문제에 있는 그대로를 코딩에 적은 그런 풀이다.
"생각"을 해서 더 짧고 간결하게 효율적으로 표현하려는 노력을 해야한다. 의식적으로라도.. 그렇게 안하면 실력이 늘지 않는다. 다양한 도구를 써서 간결하게 줄이려고 노력해보자.
고인물식 풀이
1
2
|
s=input()
while s:print(s[:10]);s=s[10:]
|
cs |
while 문과 슬라이싱이라는 도구를 통해서 이렇게 간결하게 줄일 수 있다..
input()은 문자열이 기본형이라서 저렇게 간결하게 받아도 되고,
슬라이싱이라는 생각을 못했다...
하.. 이거 답이 아니었네.. while문을 못빠져나가서 무한루프다..
좋은 풀이
1
2
3
4
5
|
a = input()
for i in range(0,len(a),10):
print(a[i:i+10])
|
cs |
문자열 입력받고 i에 0, 10, 20, 30... 등차수열로 대입해나갈 생각으로 range(0,len,공차) 이용
슬라이싱.