sooleeandtomas

[day8] 코드업 2016번: 천단위 구분기호 python(feat.파이썬 range) 본문

코딩테스트 알고리즘/기타

[day8] 코드업 2016번: 천단위 구분기호 python(feat.파이썬 range)

sooleeandtomas 2022. 10. 3. 01:02

코드업 2016번 문제 천단위 구분기호

https://codeup.kr/problem.php?id=2016&rid=0

 

아래의 코드로 입력하게 되면 에러가난다.

쓰레기 문자열이 들어가서 그런 것이라고 한다.

import sys
unit = sys.stdin.readline().strip()
num = sys.stdin.readline().strip()

nums = []
for i in range(int(unit)-1, -1, -1):
  nums.append(num[i])
  if (i != 0 and i % 3 == 0):
    nums.append(',')
print(''.join(nums))

아래 다른 사람의 코드에선 에러가 나지 않는다. 

개행이 포함되input() 때문인걸까

sys.stdin을 input()으로 바꾸어봤지만 여전했다.

 

흠.. 찝찝하지만 패스

 

참고 코드 

n = int(input())
number_list = list(map(str,input()))
number_list.reverse()

sort_number_list = []

for i in range(0,n):
    sort_number_list.append(number_list[i])
    if (i+1)%3 == 0 and i != n-1:
        sort_number_list.append(",")

sort_number_list.reverse()

print("".join(sort_number_list))

출처 : https://intrepidgeeks.com/tutorial/codeup-2016-day-unit-separator

 

 

파이썬 문법 range

 

* 앞에꺼는 이상!, 뒤에껀 미만!

  • range(n) : 0 이상 n 미만인 수를 차례로 나열하는 수열
  • range(a, b) : a 이상 b 미만인 수를 차례로 나열하는 수열
  • range(a, b, step) : a 이상 b 미만의 수를 step 간격으로 나열하는 수열
for i in range(3):
	print(i)
# 0
# 1
# 2

for i in range(2, 5):
	print(i)
# 2
# 3
# 4

for i in range(1, 5, 2):
	print(i)
# 1
# 3

for i in range(3, -1, -1):
	print(i)
# 3    
# 2
# 1
# 0
Comments