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*n for i in my_string)
|
cs |
join 함수를 이용해서 위 코드보다 한층 더 짧게 만들 수 있다.
파이썬 개념 - join() 함수
join( ) 함수 원하는 구분자를 넣어서 리스트를 문자열로 바꾸는 함수 사용 예시 : '구분자'.join(리스트) - 리스트를 문자열로 변환 - 원소 사이에 원하는 구분자 삽입해 출력하는 것도 가능
obinstory26.tistory.com
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 개념 - range, reverse, for-continue (0) | 2023.01.17 |
---|---|
파이썬 개념 - 리스트(추가, 제거, 특정 값 존재 여부 확인, for문) (0) | 2023.01.17 |
파이썬 개념 - join() 함수 (0) | 2023.01.17 |
프로그래머스_python lv0. 나이 출력 (0) | 2023.01.16 |
프로그래머스_python lv0. 아이스 아메리카노 (0) | 2023.01.15 |