[Python] 알고리즘 연습 6 (프로그래머스)

Lake·2024년 5월 13일

Python 문제

목록 보기
6/22
post-thumbnail

음양 더하기 (월간 코드 챌린지 시즌2)

  • 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

    • 제한사항

      • absolutes의 길이는 1 이상 1,000 이하입니다.
        - absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.

      • signs의 길이는 absolutes의 길이와 같습니다.

        • signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.

제출한 코드 :

def solution(absolutes, signs):
    result = 0
    for i in range(len(absolutes)):
        if signs[i] == True:
            result = result + absolutes[i]
        else:
            result = result - absolutes[i]
    return result

핸드폰 번호 가리기 (연습 문제)

  • 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
    • 제한사항
      • phone_number는 길이 4 이상, 20이하인 문자열입니다.

제출한 코드 :

def solution(phone_number):
    answer = ('*' * (len(phone_number) - 4)) + phone_number[-4:]
    return answer

없는 숫자 더하기 (월간 코드 챌린지 시즌 3)

  • 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
    • 제한사항
      • 1 ≤ numbers의 길이 ≤ 9
        - 0 ≤ numbers의 모든 원소 ≤ 9
        - numbers의 모든 원소는 서로 다릅니다.

제출한 코드 :

def solution(numbers):
    total = sum(range(10))
    for num in numbers:
        total = total - num
    return total

제일 작은 수 제거하기 (연습문제)

  • 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
    • 제한사항
      • arr은 길이 1 이상인 배열입니다.
      • 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

제출한 코드 :

def solution(arr):
    if len(arr) <= 1:  
        return [-1]
    
    min_idx = arr.index(min(arr))  
    arr.pop(min_idx) 
    return arr

가운데 글자 가져오기 (연습문제)

  • 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
    • 제한사항
      • s는 길이가 1 이상, 100이하인 스트링입니다.

제출한 코드 :

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

오늘의 TMI
헤드헌터 한테서 처음으로 연락이란걸 받아봄...! 왜 대체 나한테? 싶으면서도 얼떨떨했다 그냥ㅋㅋㅋㅋ
아무튼 연락 준 회사는 일본 회사였다. 왜 굳이 나한테 연락했을까? 싶다가도 헤드헌터들은 원래 하루에도 공고 몇 개씩 지원자들한테 뿌린다(?)고 알고 있어서 그냥 그러려니 하고 거절했다. 지금 하는게 있어서... 그리고 일본 취업은 무리라는 걸 알고 있기도 하고, 직무도 좀 읭? 스러운... 내가 원하는 결이랑 다른 직무를 제안해줘서ㅋㅋㅋㅋ LinkedIn 프로필 갈아 엎어야 하나...? 아무튼 신기한 경험이었다.

0개의 댓글