가운데 글자 가져오기
✅ <문제 설명> 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
✅ <입출력 예시>
✅ <문제 풀이>
- 문자열의 길이가 <홀수>일 경우 문자열 길이를 2로 나눠준 몫이 가운데 숫자인 것을 확인
- 따라서 2로 나눈 몫을 인덱스로 활용하여 가운데 문자 return
- 문자열의 길이가 <짝수>일 경우 문자열 길이를 2로 나눠준 몫이 가운데 2개의 숫자 중 뒤쪽에 배치된 수인 것을 확인
- 따라서, 2로 나눈 몫을 구해준 뒤 [idx-1:idx+1] 형태로 슬라이싱 해서 return
def solution(s):
if len(s) % 2 != 0 :
idx = len(s) // 2
return s[idx]
else :
idx = len(s)//2
return s[idx-1:idx+1]
콜라츠 추측
✅ <문제 설명>
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 음수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수는 같은 작업을 1이 될 때까지 반복합니다.
---
예를 들어, 주어진 수가 6이라면, 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution 을 완성해주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 -1을 반환
✅ <입출력 예시>
✅ <문제 풀이>
def solution(num):
answer = 0
# 주어진 수가 1인 경우 0 return
if num == 1:
return 0
while True:
num = num/2 if num % 2 == 0 else (num*3)+1
answer += 1
# num 이 1이 되거나 answer 가 500이 넘어가면 멈추기
if num == 1:
return answer
elif answer == 500:
return -1
return answer
문자열 내림차순 배치하기
✅ <문제 설명>
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
✅ <입출력 예시>
✅ <문제 풀이>
- 리스트 컴프리헨션(쉽게, 짧게 한 줄로 만들 수 있는 파이썬의 문법)
- 문자열을 한 문자씩 리스트에 담는다. 'abcde' -> [a, b, c, d, e] (따옴표 생략)
- 리스트.sort(reverse = True) 를 해주면 소문자부터 내림차순 -> 대문자 내림차순을 진행해준다.
- 이렇게 정렬된 리스트를 (구분자).join(리스트) 함수를 적용해 다시 하나의 문자열로 합쳐준다.
def solution(s):
ls = [e for e in s]
ls.sort(reverse = True)
answer = ''.join(ls)
return answer
반응형
'Programming > Python' 카테고리의 다른 글
[프로그래머스 Python] 시저 암호 (0) | 2024.07.10 |
---|---|
[프로그래머스 Python] 제일 작은 수 제거하기 (속도 이슈..?) (0) | 2024.07.05 |
[프로그래머스 Python] 없는 숫자 더하기, 크기가 작은 부분 문자열 (0) | 2024.07.01 |
[프로그래머스 Python] 하샤드 수, 두 정수의 합, 수박수박수박수박수박수? (0) | 2024.06.28 |
[프로그래머스 Python] 자릿수 더하기 (0) | 2024.06.26 |