[Python] 코딩 기초 트레이닝31~60

NAYOUNG KIM·2023년 10월 5일
0

코딩테스트

목록 보기
3/13
post-thumbnail
# 31.수 조작하기 1
def solution(n, control):
    for i in range(len(control)):
        if control[i] == 'w':
            n += 1
        elif control[i] == 's':
            n -= 1
        elif control[i] == 'd':
            n += 10 
        elif control[i] == 'a':
            n -= 10
    return n
    
# 32.n 번째 원소부터
def solution(num_list, n):
    answer = num_list[n-1:]
    return answer

# 33.첫 번째로 나오는 음수
def solution(num_list):
    for idx, num in enumerate(num_list):
        if num < 0:
            answer = idx
            break
        else:
            answer = -1
    return answer

# 34.rny_string
def solution(rny_string):
    return rny_string.replace('m', 'rn')

# 35.뒤에서 5등 위로
def solution(num_list):
    num_list.sort()
    answer = num_list[5:]
    return answer

# 36.배열의 원소만큼 추가하기
def solution(arr):
    answer = []
    for num in arr:
        for i in range(num):
            answer.append(num)
    return answer

# 37.문자열 곱하기
def solution(my_string, k):
    return my_string * k
    
# 38.문자열 정수의 합
def solution(num_str):
    answer = 0
    for i in range(len(num_str)):
        answer += int(num_str[i])
    return answer
    
# 39.배열 비교하기
def solution(arr1, arr2):
    if len(arr2) > len(arr1):
        answer = -1
    elif len(arr2) < len(arr1):
        answer = 1
    elif len(arr2) == len(arr1):
        if sum(arr2) == sum(arr1):
            answer = 0
        elif sum(arr2) > sum(arr1):
            answer = -1
        elif sum(arr2) < sum(arr1):
            answer = 1   
    return answer

# 40.카운트 업
def solution(start_num, end_num):
    answer = [i for i in range(start_num, end_num+1)]  
    return answer
    
# 41.원하는 문자열 찾기
def solution(myString, pat):
    myString = myString.upper()
    pat = pat.upper()
    answer = 1 if pat in myString else 0
    return answer

# 42.마지막 두 원소
def solution(num_list):
    answer = num_list
    
    list_len = len(num_list)
    before_num = num_list[list_len-2]
    after_num = num_list[list_len-1]
    
    if after_num > before_num:
        answer.append(after_num-before_num)
    else:
        answer.append(after_num*2)
    return answer

# 43.공백으로 구분하기 1
def solution(my_string):
    return my_string.split(' ')

# 44.A 강조하기
def solution(myString):
    answer = myString.lower()
    for str in answer:
        if str == "a":
            answer = answer.replace("a", "A")
    return answer

# 45.배열에서 문자열 대소문자 변환하기
def solution(strArr):
    answer = []
    for idx, str in enumerate(strArr):
        if idx % 2 == 1:
            answer.append(str.upper())
        else:
            answer.append(str.lower())
    return answer

# 46.공백으로 구분하기 2
def solution(my_string):
    return my_string.strip().split()
    
# 47.배열의 원소 삭제하기
def solution(arr, delete_list):
    answer = []
    for x in arr:
        if x not in delete_list:
            answer.append(x)
    return answer
    
# 48.문자열 바꿔서 찾기
def solution(myString, pat):
    tmp_str = ""
    for str in myString:
        if str == "A":
            tmp_str += "B"
        else:
            tmp_str += "A"
    answer = 1 if pat in tmp_str else 0
    return answer
    
# 49.꼬리 문자열
def solution(str_list, ex):
    answer = ''
    for str in str_list:
        if ex not in str:
            answer += str
    return answer
    
# 50.홀짝에 따라 다른 값 반환하기
def solution(n):
    answer = 0
    if n % 2 == 1:
        for i in range(n+1):
            if i % 2 == 1:
                answer += i
    else:
        for i in range(n+1):
            if i % 2 == 0:
                answer += i * i          
    return answer
    
# 51.5명씩
def solution(names):
    answer = []
    for idx, name in enumerate(names):
        if (idx+1) % 5 == 1:
            answer.append(name)
    return answer
    
# 52.l로 만들기
def solution(myString):
    target_alp_list = ['a','b','c','d','e','f','g','h','i','j','k']
    answer = ''
    for str in myString:
        if str in target_alp_list:
            answer += "l"
        else:
            answer += str
    return answer
    
# 53.뒤에서 5등까지
def solution(num_list)    num_list.sort()홀짝 구분하기
    return num_list[:5]
    
# 54.부분 문자열 이어 붙여 문자열 만들기
def solution(my_strings, parts):
    answer = ''
    for idx1, str in enumerate(my_strings):
        for idx2, value in enumerate(parts):
            if idx1 == idx2:
                start_idx = value[0]
                end_idx = value[1]
                answer += str[start_idx:end_idx+1]
    return answer
    
# 55.홀짝 구분하기
a = int(input())
if a % 2 == 0:
    print(str(a) + " is even")
else:
    print(str(a) + " is odd")

# 56.접미사인지 확인하기
def solution(my_string, is_suffix):
    answer_list = []
    for i in range(len(my_string)):
        answer_list.append(my_string[i:])
    answer = 1 if is_suffix in answer_list else 0 
    return answer

# 57.홀수 vs 짝수
def solution(num_list):
    odd_sum = 0
    even_sum = 0
    for idx, num in enumerate(num_list):
        if (idx+1) % 2 == 1:
            odd_sum += num
        else:
            even_sum += num
    
    if odd_sum == even_sum:
        answer = odd_sum
    else:
        answer = max(odd_sum, even_sum)
    return answer
    
# 58.0 떼기
def solution(n_str):
    return str(int(n_str))
    
# 59.할 일 목록
def solution(todo_list, finished):
    answer = []
    for i in range(len(finished)):
        if finished[i] == False:
            answer.append(todo_list[i])
    return answer

# 60.순서 바꾸기
def solution(num_list, n):
    return num_list[n:] + num_list[:n]
profile
21세기 주인공

0개의 댓글