프로그래밍/Python

프로그래머스_python lv0. 문자 반복 출력하기

O'bin 2023. 1. 17. 16:41

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

내 답안 : 

 

1
2
3
4
5
6
7
8
def solution(my_string, n):
    answer = ''
    
    for i in my_string:
        for j in range(1,n+1):
            answer += i
 
    return answer
cs

 

my_string에 들어있는 글자 하나씩 n번 반복해서 answer 배열에 추가하는 코드이다.

배열 끝에 원소를 추가할 때 더하기로 가능하다는 것(6번째 줄)을 이용해 간단히 풀 수 있었다.

 

 

 

 

개선안 : 

 

1
2
3
4
5
6
7
8
9
def solution(my_string, n):
    answer = ''
 
    for element in my_string:
        # element마다 n 번 반복해 answer에 넣기
        answer += element * n   
    
    return answer
 
cs

 

파이썬에서는 곱하기로 문자를 여러 번 반복할 수 있다는 점을 이용하면(5번째 줄)

for문 한번으로 실행 가능하다.

 

 

 

 

1
2
3
def solution(my_string, n):
    # my_string의 원소마다 n번 반복하고 문자열 형태로 출력
    return ''.join(i*for i in my_string)
cs

 

join 함수를 이용해서 위 코드보다 한층 더 짧게 만들 수 있다.

 

 

파이썬 개념 - join() 함수

join( ) 함수 원하는 구분자를 넣어서 리스트를 문자열로 바꾸는 함수 사용 예시 : '구분자'.join(리스트) - 리스트를 문자열로 변환 - 원소 사이에 원하는 구분자 삽입해 출력하는 것도 가능

obinstory26.tistory.com