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

파이썬으로 숫자 천 단위마다 콤마(,) 넣는 방법 완벽 정리

숫자 n이 주어졌을 때, 이 숫자를 천 단위마다 콤마(",")로 구분된 문자열 형태로 변환하는 프로그램을 만들어 보겠습니다.

예를 들어 입력값이 n = 512462687이라면, 출력 결과는 "512,462,687"이 되어야 합니다.

문제 해결 접근 방법

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

  1. 숫자 n을 문자열로 변환합니다.
  2. 변환된 문자열을 뒤집습니다. (뒤에서부터 세 자리씩 묶기 위함)
  3. 결과를 담을 빈 문자열을 준비합니다.
  4. 뒤집힌 문자열을 처음부터 끝까지 순회하며, 인덱스가 3의 배수이고 0이 아닌 위치마다 콤마를 삽입합니다.
  5. 완성된 문자열을 다시 뒤집어 원래 순서로 복원합니다.

구현 예제 (Python)

위 로직을 파이썬 코드로 구현하면 다음과 같습니다.

def solve(n):
    res = str(n)
    res = res[::-1]

    ans = ""
    for i in range(len(res)):
        if i % 3 == 0 and i != 0:
            ans += ','
        ans += res[i]

    ans = ans[::-1]

    return ans

n = 512462687
print(solve(n))

실행 결과

입력:

512462687

출력:

512,462,687

더 간단한 방법: 파이썬 내장 포맷팅 활용하기

사실 파이썬에서는 위와 같이 직접 구현하지 않아도 내장 기능만으로 같은 결과를 얻을 수 있습니다.

n = 512462687

# f-string 사용
print(f"{n:}")

# format() 함수 사용
print(format(n, ","))

두 방법 모두 512,462,687을 출력합니다. 실무에서는 코드가 간결하고 가독성이 좋은 f-string 방식(f"{n:}")을 가장 많이 사용합니다.

정리

  • 직접 구현 방식은 문자열 뒤집기를 활용해 뒤에서부터 세 자리마다 콤마를 삽입하는 알고리즘입니다.
  • 내장 포맷팅(f"{n:}")을 사용하면 한 줄로 동일한 결과를 얻을 수 있습니다.
  • 알고리즘 학습 목적이라면 직접 구현 방식을, 실제 프로젝트라면 내장 포맷팅을 활용하는 것이 효율적입니다.