ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • playdata 프로그래머스 알고리즘 공부
    파이썬/알고리즘 공부 2021. 7. 23. 00:13
    728x90

    playdata 프로그래머스 기초알고리즘1


    1.두 정수 사이의 합


    def solution(a, b):
        answer = 0
        if a >= b:
            for i in range(b, a+1):
                answer += i
        else:
            for j in range(a, b+1):
                answer += j
        return answer

    2.수박수박수박수?


    def solution(n):
        answer = ''
        for i in range(n):
            if i % 2 == 0:
                answer += "수"
            else:
                answer += "박"
        return answer

    3.서울에서 김서방 찾기


    def solution(seoul):
        answer = '김서방은 ' + str(seoul.index("Kim")) +'에 있다'
        return answer

    4.약수의합


    def solution(n):
        answer = 0
        for i in range(1, n+1):
            if n%i == 0:
                answer += i
        return answer

    약수들을 다 적어보면서 어떤 특징들이 있나 보다보면 아 그렇구나! 하고 깨닫는게 있다.


    5.문자열 내 p와 y의개수


    def solution(s):
    
        s = s.lower()
        str1 = s.count("p")
        str2 = s.count("y")
    
        return (str1 == str2)

    6.같은 숫자는 싫어


    def solution(arr):
        answer = []
        for i in arr:
            if answer[-1:] == [i]:
                continue
            else:
                answer.append(i)
        return answer

    7.가운데 글자 가져오기


    def solution(s):
        if len(s)%2 == 0:
    
            answer = s[int(len(s)/2)-1] + s[int(len(s)/2)]
    
        else:
    
            answer = s[int(len(s)/2)]
    
        return answer

    8.x만큼 간겨이 있는 n개의 숫자


    def solution(x, n):
        answer = []
    
        for i in range(1, n+1):
            answer.append(x * i)
        return answer

    9.직사각형 별찍기


    a, b = map(int, input().strip().split(' '))
    for i in range(b):
        print('*' * a)

    10.평균 구하기


    def solution(arr):
        answer = 0
        answer = sum(arr) / len(arr)
        return answer

    11.행렬의 덧셈


    def solution(arr1, arr2):
        answer = []
        for i in range(len(arr1)):
            sum = []
            for j in range(len(arr1[i])):
                sum.append(arr1[i][j] + arr2[i][j])
            answer.append(sum)
        return answer

    12.짝수와 홀수


    def solution(num):
    
        return "Even" if num % 2 == 0 else "Odd"

    13.자릿수 더하기


    def solution(n):
        answer = 0
    
        return sum([int(i) for i in str(n)])
    

    한 줄 for문을 이용하면 간단히 구할 수 있다.


    14.최대공약수와 최소공배수


    def solution(n, m):
        answer = []
        max_, min_ = max(n, m), min(n, m)
    
        r = 1
        while r > 0:
            r = max_ % min_
            max_, min_ = min_, r
    
        answer = [max_, (n*m/max_)]
        return answer

    이건 종이에 써보면서 하는게 빨리 이해된다.


    15.정수제곱근 판별


    def solution(n):
        squa = n**0.5
        if squa % 1 == 0:
            return (n**0.5 + 1)**2
        else:
            return -1

    제곱근 이외의 수에 루트를 씌우면 정수가 아니기 때문에 1로 나눌때 .뒤에 값들이 나머지로 나오게 되는걸 적용한다.

    댓글

Designed by Tistory.