문자열 정렬하기
문자열 s와 자연수 n이 입력으로 주어집니다. 문자열 s를 좌측 / 가운데 / 우측 정렬한 길이 n인 문자열을 한 줄씩 프린트해보세요.
INPUT
abc 7
OUPUT
abc
abc
abcs, n = input().strip().split(' ')
blank = int(n) - len(s)
half_blank = int(blank / 2)
print(s + " " * blank)
print(" " * half_blank + s + " " * half_blank)
print(" " * blank + s)파이썬에서는 iterable 객체/자료구조를 *를 통해서 반복시킬 수 있다. 그래서 문자열 역시 iterable하기 때문에 *를 통해서 반복시킬 수 있다. 이를 이용하여 위의 코드처럼 구현하였다.
참고로 공백을 붙일 때, 내가 한 것처럼 할 수도 있지만 반복문을 사용하여 " "을 반복하여 공백을 만들수도 있다. 하지만 이 방법은 공백의 위치에 따라서 반복문을 새로 만들어줘야 하므로 내가 한 방법과 유사하고 코드의 길이 역시 더 길어지는 단점이 있다.
s = "abc"
s.ljust(7) # "abc "
s.rjust(7) # " abc"
s.center(7) # " abc "파이썬에는 ljsut(), rjust(),center() 라는 정렬에 관련된 문자열 메소드가 있다. 이 메소드는 첫번째 인자값으로 칸수를 넣어주면 그 칸수 내에서 해당 문자열을 정렬시켜준다.
두번째 인자값은 문자열을 무엇으로 채울지에 대한 값을 준다. 만약에 위에처럼 아무것도 안넣어주면 기본값으로 공백을 넣어준다.
s = "abc"
s.ljust(7, "*") # "abc****"
s.rjust(7, "-") # "----abc"
s.center(7, "^") # "^^abc^^"