본문 바로가기
python

프로그래머스 레벨1 88~80%

by Gyona 2025. 6. 29.

약수의 합

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)