코딩테스트 연습 - 가운데 글자 가져오기
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret
programmers.co.kr
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
s는 길이가 1 이상, 100이하인 스트링입니다.
s | return |
"abcde" | "c" |
"qwer" | "we" |
1
2
3
4
5
6
7
8
|
def solution(s):
if len(s) % 2 == 1:
a = len(s) // 2
answer = s[int(a)]
else:
a = len(s) / 2
answer = s[int(a-1)] + s[int(a)]
return answer
|
cs |
- 2~4번째 줄 : 입력받은 s의 길이가 홀수일 경우, s의 길이를 2로 나눈 몫을 a에 저장한다. 리스트의 인덱스로는 string이 못들어 가므로 int로 변환 후 이를 s의 index로 넣어서 그 값을 answer에 넣는다. 리스트의 인덱스가 0부터 시작하므로 s의 인덱스 값에 a값을 그대로 넣어도 된다.
- 5~7번째 줄 : 입력받은 s의 길이가 짝수인 경우, s의 길이를 2로 나눈 값을 a에 저장한다. 리스트의 인덱스로는 string이 못들어 가므로 int로 변환한 값을 넣는다. 리스트 인덱스가 0부터 시작하므로 s의 길이가 짝수인 경우에는 a와 a 보다 1작은 인덱스를 s의 index로 넣어서 그 값을 answer에 넣는다.
1
2
|
def solution(s):
return s[(len(s)-1)//2:len(s)//2+1]
|
cs |
인덱스 슬라이싱으로 표현하면 1줄로도 코딩이 가능하다. 입출력 예의 경우를 빌려서 설명하면
- s의 길이가 5인 경우 슬라이싱 결과물이 s[2:3] 이 되므로 가운데 글자인 s[2]를 return 해준다.
- s의 길이가 4인 경우 슬라이싱 결과물이 s[1:3] 이 되므로 s[1]과 s[2]를 return 해준다.
[프로그래머스/Level1/파이썬3] 콜라츠 추측 (0) | 2021.02.04 |
---|---|
[프로그래머스/Level1/파이썬3] 휴대폰 번호 가리기 (0) | 2021.02.03 |
[프로그래머스/Level1/파이썬3] 예산 (0) | 2021.01.25 |
[프로그래머스/Level1/파이썬3] 직사각형 별찍기 (0) | 2021.01.24 |
[프로그래머스/Level1/파이썬3] 이상한 문자 만들기 (0) | 2021.01.17 |