반응형
# 1부터 10000까지 배열을 만들어 두고
# for 문을 이용해 1부터 10000까지 돌면서
# hap이 있으면 result에서 지우는 방식으로 푼 방식
# 여기서 잠시 혼동이 왔던 부분 정리하자면
# del은 인덱스를 지우는 방식
# remove는 값을 지우는 방식
result = [i for i in range(1, 10001)]
for i in range(1, 10001):
hap = i + sum(list(map(int,str(i))))
if hap in result: result.remove(hap)
for i in result: print(i)
# 처음 접근한 방식
# 1부터 10000까지 돌면서 1부터 해당 숫자 아래의 모든 값을 조사하며
# 해당 숫자의 값이 되는지 확인 하는 코드
# 의미 없는 탐색을 계속 하는 단점으로 많은 시간이 소요됨.
stack = []
for i in range(1, 10001):
flag = True
for j in range(i-1, 0, -1):
hap = j
while j != 0:
hap += j%10
j = j//10
if hap == i:
flag = False
break
if flag == True:
stack.append(i)
for i in stack:
print(i)
'알고리즘' 카테고리의 다른 글
[백준, 14501번] 퇴사 (0) | 2023.07.27 |
---|---|
[백준, 2309번] 일곱 난쟁이 (0) | 2023.07.27 |
[백준, 1182번] 부분수열의 합 (0) | 2023.07.26 |
[백준] 알고리즘 수업 - 점근적 표기 1 (0) | 2023.07.25 |
[백준] 알고리즘 수업 - 알고리즘의 수행 시간 6 (0) | 2023.07.25 |