📍4673번 셀프넘버
이건 문제를 이해 못하겠다......나중에 다시 도전
더보기
numbers = list(range(1,10001))
remove_list = [] #생성자 리스트
for num in numbers:
for n in str(num):
num += int(n)
if num <= 10000:
remove_list.append(num)
for remove_num in set(remove_list):
numbers.remove(remove_num)
for self_num in numbers:
print(self_num)
📍1065번 한수
N = int(input())
# 한수의 갯수를 출력하는 변수
hansu = 0
for i in range(1, N+1):
# 1부터 99까지는 무조건 한수이다.
if i < 100:
hansu += 1
else :
# N은 1000보다 작은 수이기 때문에 3자리 숫자만 생각하면 된다.
# 입력받은 N을 문자열로 변환해서 배열에 입력해준다.
a = list(map(int, str(i)))
if a[0] - a[1] == a[1] - a[2]:
hansu += 1
print(hansu)
내가 작성한 for문을 활용한 코드 : hansu라는 한수의 갯수를 출력하는 변수를 선언해준다. 1부터 99까지는 무조건 한수이다. 문제에서 N은 1000보다 작은 수라고 정의했기 때문에 세자리 숫자까지만 고려하면 된다. 그래서 100부터 999 일 때는 숫자를 입력받아 문자열로 바꿔준 후 배열에 입력해준다.
def hansu(N):
count = 0
for i in range(1, N+1):
num_list = list(map(int, str(i)))
if i < 100:
count += 1
elif (num_list[0]-num_list[1]) == (num_list[1]-num_list[2]):
count += 1
return count
N = int(input())
print(hansu(N))
함수를 정의해서 만든 코드 : 구글링을 하면서 보니, 함수파트에 있는 문제이기 때문에 함수를 정의해서 만든 코드도 있어서 가져와봤다.
한수의 갯수를 출력해주는 hansu라는 함수를 정의해서 그 함수 안에 for문으로 조건을 걸어 정의해준다.
그리고 함수 밖에서 N을 입력받아주고 hansu 함수를 호출해주면 한수갯수가 출력된다.
'Coding Test > 백준 단계별로 풀어보기' 카테고리의 다른 글
백준 단계별로 풀어보기 - 11665번, 11720번, 10809번, 2675번,1175번,1316번 (0) | 2022.09.10 |
---|---|
백준 단계별로 풀어보기 - 10818번,2562번, 1546번, 8958번 (0) | 2022.09.06 |
백준 단계별로 풀어보기 - 2739번, 25304번, 11021번, 11022번, 2439번, 10871번, 10951번, 10952번, 1110번 (0) | 2022.09.05 |
백준 단계별로 풀어보기 - 2753번, 2480번, 2884번, 2525번 (0) | 2022.09.02 |
백준 단계별로 풀어보기 - 2588번, 3003번, 고양이, 강아지, 새싹 (0) | 2022.09.01 |