본문 바로가기
  • think together
카테부 4기 판교 ai 실무/코테 공부

프로그래머스 코딩 기초 트레이닝 Day11

by hwamgai 2026. 6. 4.

문제 : 문자 개수 세기

https://school.programmers.co.kr/learn/courses/30/lessons/181902

 

코딩테스트 연습 - 문자 개수 세기

알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려

school.programmers.co.kr

 

내 코드

def solution(my_string):
    answer = [0] * 52
    
    for i in my_string:
        for j in range(ord('A'), ord('Z')+1):
            if i == chr(j):
                 answer[j-65] += 1
        
        for j in range(ord('a'), ord('z')+1):
            if i == chr(j):
                answer[j-97+26] += 1
    return answer

 

좋은 코드

def solution(my_string):
    answer=[0]*52
    for x in my_string:
        if x.isupper():
            answer[ord(x)-65]+=1
        else:
            answer[ord(x)-71]+=1
    return answer
def solution(my_string):
    answer = []
    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    for i in alphabet:
        answer.append(len(my_string.split(i))-1)
    return answer

 

 

 

문제 : 배열 만들기1

https://school.programmers.co.kr/learn/courses/30/lessons/181901

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

내 코드:

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

 

좋은 코드 : 

def solution(n, k):
    return [i for i in range(k,n+1,k)]
def solution(n, k):
    return list(range(k, n + 1, k))

 

 

 

 

문제 : 글자 지우기

https://school.programmers.co.kr/learn/courses/30/lessons/181900

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

내 코드:

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

이게 최선일까...

 

좋은 코드 : 

def solution(my_string, indices):
    answer = ''
    for i in range(len(my_string)):
        if i not in indices:answer+=my_string[i]
    return answer
def solution(my_string, indices):
    my_string = list(my_string)
    for i in sorted(indices, reverse=True):
        del my_string[i]
    return ''.join(my_string)
def solution(my_string, indices):
    return "".join([v for i,v in enumerate(my_string) if i not in indices])

 

 

 

문제 : 카운트 다운

https://school.programmers.co.kr/learn/courses/30/lessons/181899

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

내 코드:

def solution(start_num, end_num):
    answer = []
    
    for i in range(start_num, end_num-1, -1):
        answer.append(i)
    return answer

 

좋은 코드:

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

 

 

 

 

문제 : 가까운 1 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/181898

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

내 코드 :

def solution(arr, idx):
 
    for i in range(idx, len(arr)):
        if arr[i] == 1:
            return i

    return -1

 

좋은 코드 :

def solution(arr, idx):
    answer = 0
    try:
        answer = arr.index(1, idx)
    except:
        answer = -1

    return answer