[프로그래머스 Python] 코딩 기초 트레이닝 Day 11 - 리스트(배열)
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. 문제 출처
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기