https://www.acmicpc.net/step/5
함수 단계
함수를 구현해 봅시다. (이 문제는 C, C++, Python, Java, Go만 지원합니다. 그 외의 언어를 사용하신다면 이 문제를 무시해 주세요.)
www.acmicpc.net
# 15596 : 정수 N개의 합
def solve(a):
ans = sum(a)
return ans
# 4673 : 셀프 넘버
def self_number():
num_set = set(range(10001))
not_self_num_set = set()
for i in range(10001):
not_self_num_set.add(i + i%10 + (i//10)%10 + (i//100)%10 + (i//1000)%10 + (i//10000)%10)
result_list = sorted(list(num_set - not_self_num_set))
for i in result_list:
print(i)
self_number()
- for문을 이용하여 self number가 아닌 숫자들의 집합 만들기
- i%10 : 일의 자리 숫자
- (i//10)%10 : 십의 자리 숫자
- (i//100)%10 : 백의 자리 숫자
- (i//1000)%10 : 천의 자리 숫자
- (i//10000)%10 : 만의 자리 숫자
- 1~10000의 숫자들의 집합과 self number가 아닌 숫자들의 집합의 차집합 구하기
- num_set - not_self_number_set
- 리스트로 변형 후 오름차순 정렬하여 순서대로 출력하기
# 1065 : 한수
n = int(input())
def hansu(h):
hansu_list = []
for i in range(1, h+1):
if i < 100:
hansu_list.append(i)
else:
a = i//100 - (i%100)//10
b = (i%100)//10 - i%10
if a == b:
hansu_list.append(i)
return len(hansu_list)
print(hansu(n))
한 자리 수, 두 자리 수는 모두 한수임!!
세 자리 수 이상부터 고려하면 되는데, 입력의 최댓값이 1000이고 1000은 한수가 아니므로 세 자리 수만 고려함.
세 자리 수일 때, 백의 자리 수와 십의 자리 수의 차가 십의 자리 수와 일의 자리 수의 차와 같은지를 확인하여 hansu_list에 append 해주었다.
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BAEKJOON] 단계별로 풀어보기 25. 그리디 알고리즘 (0) | 2023.04.10 |
---|---|
[BAEKJOON] 단계별로 풀어보기 6. 문자열 (1) | 2022.10.01 |
[BAEKJOON] 단계별로 풀어보기 4. 1차원 배열 (0) | 2022.09.13 |
[BAEKJOON] 단계별로 풀어보기 3. 반복문 (0) | 2022.09.10 |
[BAEKJOON] 단계별로 풀어보기 2. 조건문 (0) | 2022.09.09 |