본문 바로가기
코딩테스트

프로그래머스 기초 Day 22 파이썬

by 피갓자 2025. 4. 23.

프로그래머스
프로그래머스

0 떼기

문제 설명

정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 2 ≤ n_str ≤ 10
  • n_str이 "0"으로만 이루어진 경우는 없습니다.

입출력 예

n_str result
"0010" "10"
"854020" "854020"

입출력 예 설명

입출력 예 #1

  • "0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다.

입출력 예 #2

  • "854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다.

solution.py

def solution(n_str):
    for i in range(len(n_str)):
        if n_str[i] != '0':
            return n_str[i:]
def solution(n_str):
    answer = n_str.lstrip('0')
    return answer

두 수의 합

문제 설명

0 이상의 두 정수가 문자열 ab로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ a의 길이 ≤ 100,000
  • 1 ≤ b의 길이 ≤ 100,000
  • a와 b는 숫자로만 이루어져 있습니다.
  • a와 b는 정수 0이 아니라면 0으로 시작하지 않습니다.

입출력 예

a b result
"582" "734" "1316"
"18446744073709551615" "287346502836570928366" "305793246910280479981"
"0" "0" "0"

입출력 예 설명

입출력 예 #1

  • 예제 1번의 ab는 각각 582, 734이고 582 + 734 = 1316입니다. 따라서 "1316"을 return 합니다.

입출력 예 #2

  • 예제 2번의 ab는 각각 18446744073709551615, 287346502836570928366이고 18446744073709551615 + 287346502836570928366 = 305793246910280479981입니다. 따라서 "305793246910280479981"을 return 합니다.

입출력 예 #3

  • 예제 3번의 ab는 각각 0, 0이고 0 + 0 = 0입니다. 따라서 "0"을 return 합니다.

solution.py

def solution(a, b):
    answer = str(int(a) + int(b))
    return answer

문자열로 변환

문제 설명

정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ n ≤ 10000

입출력 예

n result
123 "123"
2573 "2573"

입출력 예 설명

입출력 예 #1

  • 123을 문자열로 변환한 "123"을 return합니다.

입출력 예 #2

  • 2573을 문자열로 변환한 "2573"을 return합니다.

solution.py

def solution(n):
    answer = str(n)
    return answer

배열의 원소 삭제하기

문제 설명

정수 배열 arr과 delete_list가 있습니다.

arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ arr의 길이 ≤ 100
  • 1 ≤ arr의 원소 ≤ 1,000
  • arr의 원소는 모두 서로 다릅니다.
  • 1 ≤ delete_list의 길이 ≤ 100
  • 1 ≤ delete_list의 원소 ≤ 1,000
  • delete_list의 원소는 모두 서로 다릅니다.

입출력 예

arr delete_list result
[293, 1000, 395, 678, 94] [94, 777, 104, 1000, 1, 12] [293, 395, 678]
[110, 66, 439, 785, 1] [377, 823, 119, 43] [110, 66, 439, 785, 1]

입출력 예 설명

입출력 예 #1

  • 예제 1번의 arr의 원소 중 1000과 94가 delete_list에 있으므로 이 두 원소를 삭제한 [293, 395, 678]을 return 합니다.

입출력 예 #2

  • 예제 2번의 arr의 원소 중 delete_list에 있는 원소는 없습니다. 따라서 arr 그대로인 [110, 66, 439, 785, 1]을 return 합니다.

solution.py

def solution(arr, delete_list):
    answer = []
    for i in arr:
        if i not in delete_list:
            answer.append(i)
    return answer

부분 문자열인지 확인하기

문제 설명

부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다.

예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.

문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ target의 길이 ≤ 100
  • target은 영소문자로만 이루어져 있습니다.

입출력 예

my_string target result
"banana" "ana" 1
"banana" "wxyz" 0

solution.py

def solution(my_string, target):
    if target in my_string:
        return 1
    else:
        return 0