1. 문자 개수 세기

알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 ‘A’의 개수, my_string에서 ‘B’의 개수,…, my_string에서 ‘Z’의 개수, my_string에서 ‘a’의 개수, my_string에서 ‘b’의 개수,…, my_string에서 ‘z’의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000

코드 작성

def solution(my_string):
    alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
    dic = {k:0 for k in alpha}
    for s in my_string:
        dic[s] += 1
    return [v for v in dic.values()]


2. 배열 만들기 1

정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 1 ≤ n ≤ 1,000,000
  • 1 ≤ k ≤ min(1,000, n)

코드 작성

def solution(n, k):
    return [n for n in range(1, n+1) if n % k == 0]


3. 글자 지우기

문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ indices의 길이 < my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다
  • 0 ≤ indices의 원소 < my_string의 길이
  • indices의 원소는 모두 서로 다릅니다.

코드 작성

def solution(my_string, indices):
    l = [s for i, s in enumerate(my_string) if i not in indices]
    return ''.join(l)


4. 카운트 다운

정수 start와 end가 주어질 때, start에서 end까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

제한사항

  • 0 ≤ end ≤ start ≤ 50

코드 작성

def solution(start, end):
    return [n for n in range(start, end-1, -1)]


5. 가까운 1 찾기

정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.

제한사항

  • 3 ≤ arr의 길이 ≤ 100’000
    • arr의 원소는 전부 1 또는 0입니다.

코드 작성

def solution(arr, idx):
    new_arr = arr[idx:]
    if 1 not in new_arr:
        return -1
    return new_arr.index(1) + idx


6. 문제 출처


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

댓글남기기