개발 공부 일지/Python

프로그래머스 코딩테스트 입문 day7 : 문자열, 조건문, 수학, 반복문

yelimu 2024. 7. 2. 21:14

1. 특정 문자 제거하기

[내 풀이]

def solution(my_string, letter):
    answer = ''
    answer = ''.join(my_string.split(letter))
    return answer

 

[다른 풀이]

(1)

def solution(my_string, letter):

    return my_string.replace(letter,'')

 

(2)

def solution(my_string, letter):
    answer = ''
    for string in my_string:
        if string != letter:                    # if string not in letter : letter가 문자가 아닌 문자열일때  
            answer += string
    return answer

 


2. 각도기

[내 풀이]

def solution(angle):
    answer = 0
    if angle > 0 and angle < 90:
        answer = 1
    elif angle == 90:
        answer = 2
    elif angle > 90 and angle < 180:
        answer = 3
    else :
        answer = 4
    return answer

 

[다른 풀이]

(1) 

def solution(angle):

    answer = (angle // 90 ) * 2 + (angle % 90 > 0 ) * 1          # True (1)  / False (0) 로 반환됨 

    return answer

 

(2)

def solution(angle):
    if angle<=90:
        return 1 if angle<90 else 2
    else:
        return 3 if angle<180 else 4

 

(3) 

def solution(angle):
    angles = {180: 4, 91: 3, 90: 2, 0: 1}
    for base, result in angles.items():
        if angle >= base:
            return result


3. 양꼬치

: 10인분을 먹으면 음료수 하나를 서비스  

양꼬치 n인분과 음료수 k개를 먹었다면 총얼마

[내 풀이]

def solution(n, k):
    answer = 0 #total price

    if n >= 10:
        k -= n // 10 
    answer = n * 12000 + k * 2000
    return answer

 

[다른 풀이]

(1) 

def solution(n, k):

    return 12000 * n + 2000 * (k - n // 10)


4. 짝수의 합: 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값

[내 풀이]

(1)

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

 

(2)

def solution(n):
    answer = 0
    answer = sum (i for i in range(1, n+1) if i % 2 == 0)            # n % 2 == 0 으로 하니까 오답뜸.. i 가 짝수인지를 검사해야함 
    return answer

 

[다른 풀이]

(1)

def solution(n):
    answer = 0
    answer = sum([i for i in range(2, n+1, 2)])
    return answer

 

(2) 

def solution(n):

    return 2* (n//2) * ((n//2)+1)/2 

: 등차수열의 합