Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 문자열의 모든 공백을 앞쪽으로 이동하는 코드 작성법


문자열이 주어졌을 때 문자열 속 모든 공백을 맨 앞으로 이동시키는 것이 이 글의 목표입니다. 예를 들어 문자열에 공백이 네 개 포함되어 있다면, 그 네 개의 공백은 나머지 모든 문자보다 앞쪽에 위치해야 합니다. 본격적인 코딩에 앞서 예상되는 입출력 예시부터 살펴보겠습니다.

입력:
string = "tutorials point "

출력:
"tutorialspoint"


입력:
string = "I am a python programmer."

출력:
"Iamapythonprogrammer."

※ 실제 출력은 따옴표 없이 표시되며, 문자열 앞에 해당 개수만큼의 공백이 함께 출력됩니다. 콘솔 환경에서는 선행 공백이 눈에 잘 띄지 않으니 참고하세요.

알고리즘

다음 순서대로 진행하면 목표를 달성할 수 있습니다.

  1. 문자열을 초기화합니다.
  2. 공백이 아닌 모든 문자를 찾아 별도의 변수에 저장합니다.
  3. 문자열의 count() 메서드로 공백의 개수를 구합니다.
  4. 공백 문자 하나를 공백 개수만큼 곱해 새 문자열의 앞부분을 만듭니다.
  5. 새 문자열 뒤에 저장해 둔 문자들을 이어 붙입니다.
  6. 최종 결과를 출력합니다.

예제 코드 1

# 문자열 초기화
string = "tutorials point "

# 공백을 제외한 모든 문자 추출
chars = [char for char in string if char != " "]

# count() 메서드로 공백 개수 계산
spaces_count = string.count(' ')

# 공백 개수만큼 공백을 반복해 새 문자열 생성
new_string = " " * spaces_count

# 새 문자열에 문자들을 이어 붙이기
new_string += "".join(chars)

# 결과 출력
print(new_string)

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다(결과 앞에 공백 두 개가 포함됩니다).

tutorialspoint

예제 코드 2

이번에는 다른 입력값으로 동일한 프로그램을 실행해 보겠습니다.

# 문자열 초기화
string = "I am a python programmer."

# 공백을 제외한 모든 문자 추출
chars = [char for char in string if char != " "]

# count() 메서드로 공백 개수 계산
spaces_count = string.count(' ')

# 공백 개수만큼 공백을 반복해 새 문자열 생성
new_string = " " * spaces_count

# 새 문자열에 문자들을 이어 붙이기
new_string += "".join(chars)

# 결과 출력
print(new_string)

실행 결과

실행 결과는 다음과 같습니다(결과 앞에 공백 세 개가 포함됩니다).

Iamapythonprogrammer.

더 간단한 대안: replace() 활용하기

리스트 컴프리헨션 대신 replace() 메서드를 사용하면 코드를 더욱 간결하게 작성할 수 있습니다.

string = "tutorials point "

no_space = string.replace(" ", "")
space_count = len(string) - len(no_space)

result = " " * space_count + no_space
print(result)

마무리

이번 글에서는 파이썬으로 문자열 내 모든 공백을 앞쪽으로 이동시키는 방법을 알아보았습니다. 각 단계가 문자열을 선형 시간(O(n)) 안에 처리하므로 긴 문자열에서도 효율적으로 동작합니다. 프로그램에 대해 궁금한 점이나 개선 아이디어가 있다면 댓글로 남겨 주세요!