시작하며...
모든 알고리즘 문제 풀이는 제가 직접 짜서 정답을 맞춘 결과만을 공유합니다.
마지막 'More Solution'은 다른 정답자들 풀이 중 생각지 못했던 부분들이나 좋게 느껴진 풀이법 몇개를 가져와서 공유하였습니다.
[Level 1] 가운데 글자 가져오기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
![](https://blog.kakaocdn.net/dn/cLonvX/btrTT6MU4Gj/03DWRNQrXkCeu9Zx4ikYnk/img.png)
My Solution
def solution(s):
return s[len(s)//2] if len(s) % 2 == 1 else s[(len(s)//2)-1:(len(s)//2)+1]
글자수가 홀수인 경우와 짝수인 경우로 나누어서 생각했다.
홀수인 경우는 가운데 글자를 가져오면 되었고 짝수인 경우는 글자수의 반을 나눠서 -1부터 두개를 가져오게 구성했다.'
하지만...
More Solution
def solution(s):
return str[(len(str)-1)//2:len(str)//2+1]
다른 풀이를 보니 그렇게 하지않고 그냥 바로 했어도 같은 결과가 나왔다..?!
차이는 (len(str)-1)//2 여기... 나눈뒤에 -1을 해주는것과 길이에서 -1을 하고 2로 나눈 것의 차이이다.
길이가 5인 글자라면 [2 : 3] 의 결과가 나와서 index가 2인 글자만 출력, 길이가 6이라면 [2 : 4] 로 index가 2, 3인 글자 두개가 출력된다.
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 직사각형 별찍기 (2) | 2022.12.22 |
---|---|
[Algorithm] 프로그래머스 - x만큼 간격이 있는 n개의 숫자 (0) | 2022.12.22 |
[Algorithm] 프로그래머스 - 같은 숫자는 싫어 (0) | 2022.12.19 |
[Algorithm] 프로그래머스 - 문자열 내 p와 y의 개수 (0) | 2022.12.19 |
[Algorithm] 프로그래머스 - 약수의 합 (0) | 2022.12.19 |
댓글