Day11

  • 문자 개수 세기
  • 배열 만들기 1
  • 글자 지우기
  • 카운트 다운
  • 가까운 1 찾기

문자 개수 세기

문제 설명

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

def solution(my_string):
    answer = [0] * 52
    c = [ord(i) for i in list(my_string)]
    for i in c:
        if 65 <= i <= 90:
            answer[i-65] +=1
        else:
            answer[i-71] +=1
    return answer

문자열을 아스키코드로 변경해서 A~Z까지는 65~90, a~z 까지는 97~122로 변경

[A,B,C,D,E,F,G,H...]

[65,66,67,68,69,70,,,]

0,1,2,3,4,5,6,7 ,,,,> 인덱스 번호

값이 65일 때 0번째 인덱스에 +1을 하는 방식


배열 만들기 1

문제 설명

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

 

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

글자 지우기

문제 설명

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

 

def solution(my_string, indices):
    answer = ''
    for i in range(len(my_string)):
        if i not in indices:
            answer += my_string[i]            
    return answer

카운트 다운

문제 설명

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

 

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

가까운 1 찾기

문제 설명

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

문제 설명 : 크면서 X > 크거나 같은 O 으로 수정하고 풀어야 맞음

테스트 케이스 3번이 아무리 봐도 맞는데 아니라해서 봤더니,, 설명 문제 ㅡㅡ 

def solution(arr, idx):
    answer = -1 
    for i in range(len(arr)):
        if i >= idx and arr[i] == 1:
            answer = i;
            break;
    return answer

 


오늘 일정 때문에 문제 못 풀 줄 알았는데 자기 전에 생각나서 풀고 잔다..

연속 11일 성공 ,, 작은 성공이 큰 성공을 !!! 너무 졸리지만 해내서 기뻐요 .. 

다들 굿나잇

+ Recent posts