Just Do IT!

[프로그래머스 Level 1] 12930. 이상한 문자 만들기 (Python) 본문

코딩테스트 준비/Level 1

[프로그래머스 Level 1] 12930. 이상한 문자 만들기 (Python)

MOON달 2023. 3. 30. 21:35
728x90
반응형

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

s return
"try hello world" "TrY HeLlO WoRlD"

입출력 예 설명

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

 


 

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

 

 

 

+) 자바스크립트로 다른 분이 푼 풀이

function toWeirdCase(s){
  var result = ""
  var a = s.split(' ');
  for(var i = 0; i < a.length; i++){
    for(var j = 0; j < a[i].length; j++){
        if(j % 2) result += a[i][j].toLowerCase();
      else result += a[i][j].toUpperCase();

      if(j === a[i].length-1 && i !== a.length-1) result += ' ';
    }
  }
  return result;
}

 

 

 

 

 

 


너무 오랜만(?)에 파이썬으로 알고리즘을 풀어봤고...확실히 자바스크립트로 1시간 넘게 고민하던 걸 파이썬으로 푸니까 훨씬 괜찮아보인다...내 기분 탓인 걸까...?ㅋㅋ

 

도저히 안 풀려서 파이썬으로 풀고 난 뒤에 자바스크립트로 푼 풀이를 보는데...이해는 되는데 막상 직접 풀려고 하니까 쉽지 않았다. 내일 멀쩡한 정신(!)으로 다시 공부해봐야지

 

알고리즘 문제는 늘 어려운 것 같다...ㅠ

728x90