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

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

by hwamgai 2026. 5. 28.

문제 : 배열만들기5

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

 

프로그래머스

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

programmers.co.kr

 

내 코드

def solution(intStrs, k, s, l):
    answer = []


    #intStrs에서 s번 인덱스에서 시작하는 길이 l 문자열을 잘라 정수로 변환
    #변환한 정수값이 k보다 큰 값들을 answer에 담기
    for i in range(len(intStrs)):
        a = int(intStrs[i][s:s+l])
        if a > k:
           answer.append(a)


    return answer

 

좋은 코드

def solution(intStrs, k, s, l):
    return [int(intstr[s:s+l]) for intstr in intStrs if int(intstr[s:s+l]) > k]

 

 


5월 28일

 

문제 : 부분 문자열 이어 붙여 문자열 만들기

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

 

프로그래머스

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

programmers.co.kr

 

 

 

내 코드

def solution(my_strings, parts):
    answer = ''


    for i in range(len(my_strings)):
        answer += my_strings[i][int(parts[i][0]):int(parts[i][1])+1]
    return answer

 

- 파이썬 데이터 타입 확인 : type(확인하려는 변수)

 

 

좋은 코드

def solution(my_strings, parts):
    answer = ""
    for i, (s, e) in enumerate(parts):
        answer += my_strings[i][s:e+1]
    return answer
def solution(my_strings, parts):
    return ''.join([x[y[0]:y[1]+1] for x,y in zip(my_strings, parts)])

 

 

 

 

문제 : 문자열의 뒤의 n 글자

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

 

프로그래머스

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

programmers.co.kr

 

내 코드

def solution(my_string, n):
    answer = ''

    l = len(my_string)
        
    for i in range(l-n, l):
        answer += my_string[i]
    return answer

 

좋은코드

def solution(my_string, n):
    return my_string[-n:]

- 파이썬에서 음수(-)로 배열 인덱스에 넣으면 뒤에서부터 카운트.

solution = lambda my_string, n:my_string[len(my_string)-n:]
def solution(my_string, n):
    length=len(my_string)-n
    answer = my_string[length:]
    return answer

- (전체 길이 - 요구하는 글자수)의 인덱스부터 글자 출력

 

 

 

문제 : 접미사 배열

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

 

프로그래머스

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

programmers.co.kr

 

내 코드

def solution(my_string):
    answer = []
    word = ''
    
    
    for i in range(len(my_string)):
        word = my_string[i:]
        answer.append(word)

    
    answer.sort()
    return answer

- 파이썬에서 리스트 오름차순은 "lsit.sort()"  <-- 내림차순은 list.sort(reverse=True) 

 

좋은코드

def solution(my_string):
    return sorted(my_string[i:] for i in range(len(my_string)))

 

 

 

 

문제 : 접미사인지 확인

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

 

프로그래머스

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

programmers.co.kr

 

내 코드

def solution(my_string, is_suffix):
    answer = 0
    
    for i in range(len(my_string)):
        if my_string[i:] == is_suffix:
            answer = 1
            break
            
    return answer

 

좋은코드

def solution(m, s):
    if m[-len(s):]==s: return 1
    return 0

- 접미사 문제라서 조건의 길이만큼 back해서 해당 문자열과 동일한지 확인해도 가능한 문제.

def solution(my_string, is_suffix):
    return int(my_string.endswith(is_suffix))

- startswith() : 시작 문자열이 지정된 문자와 같은지 bool 형식으로 반환

- endswith() : 끝 문자열이 지정된 문자와 같은지 bool 형식으로 변환