● 문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
● 풀이
n = int(input()) # 1 ~ N 까지의 수 입력
numList = list() # 1 ~ N 까지의 수를 담을 리스트
for i in range(1, n+1):
i = str(i) #문자열 형변환
resultValue = 0
threeCount = i.count('3') #문자열에 '3'에 해당하는 값이 몇개인지 반환
sixCount = i.count('6')
nineCount = i.count('9')
resultValue = threeCount + sixCount + nineCount
if resultValue == 0:
print(i, end=" ")
elif resultValue >= 1:
print("-" * resultValue, end=" ")
해당 문제는 숫자를 문자로 변환하여 문자열 내장함수인 count를 사용하여 간단하게 풀 수 있다.
● 발생했던 오류 정리
# Sorry: TabError: inconsistent use of tabs and spaces in indentation (line 8)
# 코드 들여쓰기 오류
#Memory error occured, (e.g. segmentation error, memory limit Exceed, stack overflow,... etc)
# 배열에 할당된 크기를 넘어서 접근했을 때
# 전역 배열의 크기가 메모리 제한을 초과할 때
# 지역 배열의 크기가 스택 크기 제한을 넘어갈 때
# 0으로 나눌 떄
# 라이브러리에서 예외를 발생시켰을 때
# 재귀 호출이 너무 깊어질 때
# 이미 해제된 메모리를 또 참조할 때
# 프로그램(main 함수)이 0이 아닌 수를 반환했을 때