약수의 합
def solution(n):
answer = 0
for i in range(1, n+1):
if n % i == 0:
answer += i
return answer
자릿수 더하기
def solution(n):
answer = 0
while n > 0:
answer += n % 10
n //= 10
return answer
자연수 뒤집어 배열로 만들기
def solution(n):
answer = []
for i in str(n):
answer.append(int(i))
answer.reverse()
return answer
def solution(n):
return list(map(int, reversed(str(n)))
짝수와 홀수
def solution(num):
if num % 2 == 0:
return "Even"
else:
return "Odd"
평균 구하기
def solution(arr):
answer = 0
for i in arr:
answer += i
answer = answer / len(arr)
return answer
def solution(arr):
answer = sum(arr) / len(arr)
return answer
X만큼 간격이 있는 N개의 숫자
def solution(x, n):
answer = []
for i in range(1, n + 1):
answer.append(x * i)
return answer
def solution(x, n):
return [x*i for i in range(1, n+1)]
나머지가 1이 되는 수 찾기
def solution(n):
answer = []
for i in range(1,n):
if n % i == 1:
answer.append(i)
return min(answer)
문자열을 정수로 바꾸기
def solution(s):
return int(s)
두 자연수 사이의 합
def solution(a, b):
answer = 0
if a < b:
for i in range( a, b+1):
answer += i
else:
for i in range( b, a+1):
answer += i
return answer
문자열 내 P와 Y의 개수
def solution(s):
pcount = 0
ycount = 0
s= s.lower()
for i in s:
if i == 'p':
pcount += 1
elif:
ycount += 1
return pcount == ycount
정수 내림차순으로 배치하기
def solution(n):
answer = []
for i in str(n):
answer.append(int(i))
answer.sort(reverse = True)
return int(''.join(map(str, answer)))
정수 제곱근 판별
def solution(n):
for i in range(1, n+1):
if i*i == n:
return (i+1)*(i+1)
return -1
하샤드 수
def solution(x):
origin = x
x_sum = 0
while x > 0:
x_sum += x % 10
x //= 10
return origin % x_sum == 0
def solution(x):
digit_sum = sum(int(i) for i in str(x))
return x % digit_sum == 0
음양 더하기
def solution(a, s):
dic = {}
result = 0
for i in range(len(a)):
dic[a[i]] = s[i]
if s[i] == True:
result += a[i]
else:
result -= a[i]
return result
def solution(a, s):
return sum(val if sign else -val for val, sign in zip(a, s))
없는 숫자 더하기
def solution(nums):
count = 0
for i in range(10):
if i not in nums:
count += i
return count
def solution(nums):
return sum(range(10)) - sum(nums)
나누어 떨어지는 숫자 배열
def solution(arr, d):
answer = []
for i in arr:
if i % d == 0:
answer.append(i)
if len(answer) == 0:
return [-1]
answer.sort()
return answer
서울에서 김서방 찾기
def solution(seoul):
for i in range(len(seoul)):
if seoul[i] == "Kim":
return f"김서방은 {i}에 있다"
def solution(seoul):
return f"김서방은 {seoul.index('Kim')}에 있다"
콜라츠 추측
def solution(num):
count = 0
while num != 1:
if count > 500:
return -1
if num % 2 == 0:
num //= 2
else:
num = num * 3 +1
count +=1
return count
핸드폰 번호 가리기
def solution(phone):
return '*'*(len(phone)-4) + phone[-4:]
가운데 글자 가져오기
def solution(s):
answer = ''
mid = 0
if len(s) % 2 == 0:
mid = len(s) // 2
return s[mid-1]+s[mid]
else:
mid = len(s) // 2
return s[mid]
제일 작은 수 제거하기
def solution(arr):
if len(arr) <= 1:
return [-1]
min_number = min(arr)
arr.remove(min_number)
return arr
내적
def solution(a, b):
answer = 0
for i in range(len(a)):
answer += a[i]*b[i]
return answer
def solution(a, b):
return sum(x * y for x, y in zip(a, b))
수박수박수박수박수박수?
def solution(n):
return ("수박" * n)[:n]
약수의 개수와 덧셈
def solution(left, right):
answer = 0
list_total = []
for i in range (left, right+1):
count =0
for j in range(1, i+1):
if i % j == 0:
count +=1
if count % 2 ==0:
answer += i
else:
answer -= i
return answer
문자열 내림차순으로 배치하기
def solution(s):
answer = ''
list =[]
for i in s:
j = ord(i)
list.append(j)
list.sort(reverse = True)
for j in list:
answer += chr(j)
return answer
def solution(s):
return ''.join(sorted(s,reverse = True))
부족한 금액 계산하기
def solution(price, money, count):
total_price = 0
answer = 0
for i in range(1, count+1):
total_price += i * price
if total_price >= money:
answer = total_price - money
else:
answer = 0
return answer
def solution(price, money, count):
total = price * count * (count + 1) // 2
return max(0, total - money)
문자열 다루기 기본
def solution(s):
if (len(s) == 4 or len(s) == 6) and s.isdigit():
answer = True
else:
answer = False
return answer
def solution(s):
return (len(s) == 4 or len(s) == 6) and s.isdigit()
행렬의 덧셈
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
temp = []
for j in range(len(arr1[0])):
temp.append(arr1[i][j] + arr2[i][j])
answer.append(temp)
return answer
직사각형 별찍기
a, b = map(int, input().strip().split(' '))
for i in range(b):
print('*'* a)
'python' 카테고리의 다른 글
프로그래머스 레벨2 정답률 80~71% (0) | 2025.06.30 |
---|---|
프로그래머스 레벨1 정렬/ 해시/ 완전탐색 함수 (0) | 2025.06.30 |
백준 이진탐색 알고리즘 연습 (0) | 2025.06.27 |
백준 정렬 알고리즘 연습 (0) | 2025.06.26 |
백준 DFS/ BFS 알고리즘 연습 (1) | 2025.06.25 |