코딩 테스트/프로그래머스
[Python] 프로그래머스 lv.0 세로 읽기
위시리
2024. 10. 21. 17:47
문제 분석
- 문자열 my_string
- 정수 m,c
- my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return
코드 설계
- my_string // m 만큼 쪼개서 반복 (한 줄에 m씩 들어간다면 총 줄이 되는가)
- 해당 줄에서 [i*m : i*m + m] 만큼의 문자열 str = [ ] 에 저장
- 저장한 str의 c번째 열들에 대해서 ([ i ][ c ]) answer에 더한 뒤 return
정답 코드
def solution(my_string, m, c) :
answer = ''
str = []
for i in range(len(my_string)//m):
str.append(my_string[i*m : i*m + m])
for i in range(len(str)) :
answer += str[i][c-1]
return answer
다른 사람 풀이 1
def solution(my_string, m, c) :
return my_string[c-1, m]
- m : 간격을 지정하는 정수
- c : 시작 위치를 나타내는 정수
- python 슬라이싱 : s[start : end : step]
- start : c-1
- end : 지정 x == 끝까지 탐색
- step = m : m의 간격으로 요소 검색
- 주어진 문자열(리스트)에서 시작 인덱스 c-1부터 m간격으로 선택하여 반환