coding test - python/Programmers

Programmers / 이상한 문자 만들기 / Python

sillon 2022. 4. 1. 16:14
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
반응형