1. 영어가 싫어요

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

제한사항

  • numbers는 소문자로만 구성되어 있습니다.
  • numbers는 “zero”, “one”, “two”, “three”, “four”, “five”, “six”, “seven”, “eight”, “nine” 들이 공백 없이 조합되어 있습니다.
  • 1 ≤ numbers의 길이 ≤ 50
  • “zero”는 numbers의 맨 앞에 올 수 없습니다.

코드 작성 (1)

def solution(numbers):
    words_3 = {"one":"1", "two":"2", "six":"6"}
    words_4 = {"zero":"0", "four":"4", "five":"5", "nine":"9"}
    words_5 = {"three":"3", "seven":"7", "eight":"8"}
    num = numbers
    answer = ""
    for _ in range(len(numbers)//3):
        if num[:3] in words_3.keys():
            answer += words_3[num[:3]]
            num = num[3:]
        elif num[:4] in words_4.keys():
            answer += words_4[num[:4]]
            num = num[4:]
        elif num[:5] in words_5.keys():
            answer += words_5[num[:5]]
            num = num[5:]    
    return int(answer)

코드 작성 (2)

def solution(numbers):
    num_list = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
    for i, n in enumerate(num_list):
        numbers = numbers.replace(n, str(i))
    return int(numbers)


2. 인덱스 바꾸기

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 1 < my_string의 길이 < 100
  • 0 ≤ num1, num2 < my_string의 길이
  • my_string은 소문자로 이루어져 있습니다.
  • num1num2

코드 작성

def solution(my_string, num1, num2):
    # 저장할 최종 문자열 
    answer = ''
    
    # 변경
    for i, s in enumerate(my_string):
        if i != num1 and i != num2:
            answer += s
        elif i == num1:
            answer += my_string[num2]
        elif i == num2:
            answer += my_string[num1]
    return answer


3. 한 번만 등장하는 문자

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

제한사항

  • 0 < s의 길이 < 1,000
  • s는 소문자로만 이루어져 있습니다.

코드 작성

def solution(s):
    num_dict = dict()
    answer = []
    # 문자별로 등장한 횟수가 담긴 사전 생성
    for alpha in s:
        if alpha in num_dict.keys():
            num_dict[alpha] += 1
        else:
            num_dict[alpha] = 1
            
    # 한 번만 등장한 문자 찾기
    for k, v in num_dict.items():
        if v == 1:
            answer.append(k)
    
    if len(answer) == 0:
        answer.append('')
    
    # 정렬
    answer.sort()
    return ''.join(answer)


4. 약수 구하기

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ n ≤ 10,000

코드 작성

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


👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기