본문 바로가기

프로그래머스

이상한 문자 만들기

반응형

나는 아래와 같이 작성을하였다.

def solution(s):
    k=s.split()
    lst=[]
    for i in k:
        lst.append(' ')
        cnt=0
        for j in i:
            cnt+=1
            if cnt%2==0:
                z=j.lower()
            else:
                
                z=j.upper()
            lst.append(z)
    lst="".join(lst)
    lst=lst[1:]
    return lst

코드를 실행하면 결과는 나오지만 테스트는 실패로 떳다.

그래서 다른사람의 코드를 보았다.

def solution(s):
    answer = ''
    s = s.split(' ')
    for word in s:
        for i in range(len(word)):
            if i % 2 == 0:
                answer += word[i].upper()
            else:
                answer += word[i].lower()
        answer += ' '
    return answer[:-1]

이코드와 나의 차이점을 크게 두가지이다.

첫째로는 스플릿을 할때 공백을 기준으로 불리했다는 점이다.

이러면 공백을 기준으로 불리하는 동일한 결과지만 명시적으로 지정했다는 점에서 다르다.

두번째로는 마지막에 공백을 추가한 이후 제거했다는 점이다.

나는 오른쪽 끝에 공백이있는 경우는 생각을 하지않았다.

그러면 공백까지 잘려나가서 오류가 뜰것이다.

그래서 수정하는 코드는 다음과같다

def solution(s):
    k=s.split(' ')
    lst=[]
    for i in k:
        lst.append(' ')
        cnt=0
        for j in i:
            cnt+=1
            if cnt%2==0:
                z=j.lower()
            else:
                
                z=j.upper()
            lst.append(z)
    lst="".join(lst)
    lst=lst[1:]
    lst += ' '
    return lst[:-1]
반응형

'프로그래머스' 카테고리의 다른 글

시저암호(아스키코드)  (0) 2024.03.03
최소 직사각형  (0) 2024.03.01
행렬의 덧셈  (0) 2024.02.29
행렬의 덧셈  (0) 2024.02.28
콜라츠추축  (1) 2024.02.27