728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 이상한 문자 만들기
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12930
나의 풀이(오답)
def solution(s):
s = list(str(S))
cnt = 0
s[0] = s[0].upper()
for i in range(1,len(s)):
#공백을 만나면 cnt 초기화
if s[i-1] == ' ' and s[i] != ' ':
cnt = 0
else:
cnt += 1
if cnt % 2 == 0:
s[i] = s[i].upper()
return "".join(s)
테스트는 성공하나, 채점에서 자꾸만 틀렸다..
cnt를 이용해서 해당 문자가 홀수일 때와 짝수일 때 해당 조건에 맞도록 변환되도록 하였다.
공백을 만나면 cnt 값을 초기화 하였다.
모범답안
def solution(s):
answer = ''
count = 0
for i in range(len(s)):
if s[i] == ' ':
count = 0
answer += s[i]
elif count % 2 == 0:
answer += s[i].upper()
count += 1
else:
answer += s[i].lower()
count += 1
return answer
[출처] 이상한 문자 만들기 (Python) [프로그래머스 문제풀이]|작성자 소울치킨
s[i]를 조건문과 반복문을 통하여 answer이라는 빈 문자열에 추가해주는 방법을 사용하셨다..
나의 풀이와 구조는 비슷하나 더욱 깔끔하고, 문제의 조건에 잘 맞는 코드인 거 같다.
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 예산 / Python (0) | 2022.04.07 |
---|---|
Programmers / 소수 만들기 / Python (0) | 2022.04.05 |
Programmers / 내적 / Python (0) | 2022.04.01 |
Programmers / *행렬의 덧셈 / Python (0) | 2022.04.01 |
Programmers / 음양 더하기 / Python (0) | 2022.04.01 |