[Baekjoon] 함수
백준-단계별로 풀어보기-'함수' 파트 문제들 중 기억해야 할 개념 및 문제들을 기록합니다.
[Baekjoon] 15596. 정수 N개의 합
: 함수를 구현해 봅시다.
📘 15596 문제 링크
def solve(a):
result = sum(a)
return result
- sum() 함수를 통해 완전 간단히 함수를 작성할 수 있다.
⬇ for문을 사용한 아래 코드는 위 코드 보다 시간이 5배는 더 걸린다.
def solve(a) :
result = 0
for i in a:
result += i
return result
[Baekjoon] 4673. 셀프 넘버
: 함수 d를 정의하여 문제를 해결해 봅시다.
📘 4673 문제 링크
# 1~10000까지의 숫자 저장
all_num = set(range(1, 10001))
# 셀프 넘버가 아닌 수 저장
not_self_num = set()
for i in range(1, 10001):
for j in str(i): # 문자열로 반환하면 예를 들어 123을 1, 2, 3으로 접근 가능
i += int(j) # ex) 123 + 1 + 2 + 3 =
not_self_num.add(i) # 셀프 넘버가 아닌 수를 계속 저장
# 셀프 넘버 set = 전체 수 set - 셀프 넘버가 아닌 수 set
self_num = sorted(all_num - not_self_num)
for i in self_num:
print(i)
- ❗ 어떻게 접근할지 막막해서 다양한 코드들을 찾아보고 그 중 제일 괜찮다고 생각하는 코드를 참고하여 이해했다.
- set() : 중복이 없는 요소들로만 구성된 집합 컬렉션 (순서 x)
- for문에서 범위를 문자열로 지정 가능하다 .
#ex)
for i in str(123):
print(i)
#output
1
2
3
- ❗ 이 문제 분류가 함수인 만큼 다음 번에는 def d(n): 함수를 만들어 다른 코드를 작성해봐야 겠다.
[Baekjoon] 1065. 한수
: X가 한수인지 판별하는 함수를 정의하여 문제를 해결해 봅시다.
📘 1065 문제 링크
N = int(input())
hansu = 0
for i in range(1, N+1):
if i <= 99: #100 미만의 수는 하나 또는 두 수만 비교하므로 모든 수가 등차수열 즉, 한수가 될 수 있다.
hansu += 1
else:
num = list(map(int, str(i))) #ex) 123 -> [1, 2, 3]
if num[0] - num[1] == num[1] - num[2]:
hansu += 1
print(hansu)
- ❗ 등차수열 구하는 방법을 어렵게 생각했는데 알고 보니 별 거 아니었다...
Author And Source
이 문제에 관하여([Baekjoon] 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tnqls1211v/Baekjoon-step6저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)