본문 바로가기
코딩 테스트/프로그래머스

이상한 문자 만들기

by ornni 2024. 4. 5.
728x90
반응형

첫번째 코드

 

문제 이해에 문제가 있었다

나는 문자 전체열에 대해서 진행해버렸....

 

def solution(s):
    answer = ''
    word = s.split()
    for i in range(len(word)):
        for j, char in enumerate(word[i]):
            if j % 2 == 0:
                answer += char.upper()
            else:
                answer += char.lower()
        answer += ' '

    return answer.strip()

 

아이 그럼 결과는 처참했다!


두번째 코드

 

그래서 이제 단어별로 나누어서 진행하기 위해서 문자열을 나누고

단어별로 인덱스 기준 짝수면 대문자로, 홀수면 소문자로 바꾸는 코드를 작성했다

 

def solution(s):
    answer = ''
    word = s.split(" ")
    for i in range(len(word)):
        for j, char in enumerate(word[i]):
            if j % 2 == 0:
                answer += char.upper()
            else:
                answer += char.lower()
        answer += ' '

    return answer.strip()

 

오답...; 디버깅으로 돌아가는 방법까지 확인해서 맞는 줄 알았는데, 반만 맞았다


새번째 코드

 

내가 이해한 방법이 맞다면 split(' ')은 3개의 공백이 있을 때 2개의 공백을 출력한다.

그렇기 때문에 하나의 공백을 추가하여 진행해야 한다.

 

인덱싱으로 대소문자가 섞인 단어를 만든 후, result에 공백, 단어가 들어가 있는 상태에 공백 하나를 추가하여 붙이는 형식으로 진행한다.

 

def solution(s):

    result = []
    word = s.split(" ")
    for i in range(len(word)):
        answer = ''
        for j, char in enumerate(word[i]):
            if j % 2 == 0:
                answer += char.upper()
            else:
                answer += char.lower()
        result.append(answer)
        
    return ' '.join(result)

 

통과!

근데 아직 이해는 잘 안되는 것 같다...

그냥 그렇구나...라는 느낌..?


링크

https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12930.%E2%80%85%EC%9D%B4%EC%83%81%ED%95%9C%E2%80%85%EB%AC%B8%EC%9E%90%E2%80%85%EB%A7%8C%EB%93%A4%EA%B8%B0

 

programmers/프로그래머스/1/12930. 이상한 문자 만들기 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

문자열 내 마음대로 정렬하기  (0) 2024.04.07
나누어 떨어지는 숫자 배열  (0) 2024.04.06
하샤드 수  (2) 2024.04.05
행렬의 덧셈  (4) 2024.04.04
음양 더하기  (8) 2024.04.03