새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • machine learning
  • 코딩
  • docker
  • AI트랙
  • 자기주도학습
  • Github
  • til
  • 내일배움카드
  • 내일배움단
  • Python
  • portfolio
  • Selenium 4
  • 내일배움캠프
  • TodayILearned
  • 스파르타코딩클럽
  • 국비지원
  • 개발일지
  • 코린이
  • 프로그래머스
  • 코딩프로젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

Algorithm

[프로그래머스] 이상한 문자 만들기

2022. 8. 17. 23:45

문제

  • 이상한 문자 만들기
문제 설명

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

 

입력 & 출력

입출력 예

sreturn

"try hello world" "TrY HeLlO WoRlD"

 

풀이 과정

1. 문자열을 띄어쓰기를 기준으로 나눠서 작업해야한다는 내용과 중간에 띄어쓰기의 개수가 바뀔 수도 있다는 내용에서 split()을 사용해야 된다고 생각을 하였다 여기서. split() 기본으로 사용해도 띄어쓰기 기준으로 나눌 수 있지만 띄어쓰기가 여러 번 들어올 수도 있다는 제약 조건이 있기 때문에. split(" ")으로 확실하게 구분하도록 한다.

2. 이렇게 가공된 s_word_list를 for문을 이용하여 순회하면서 보고 각각 홀수와 짝수일때의 경우에 대소문자 변환을 수행한다.

3. 이렇게 만들어진 result를 answer 문자열에 추가하여 반환을 해주면 되겠다.

 

** 코드 2번 방법은 제출 시 문제가 있으니 코드1번을 참고 부탁드립니다.

 

코드

코드 1

def solution(s):
    answer = [] 
    temp =''
    
    s = s.split(" ")
    
    for i in range(len(s)):
        for j in range(len(s[i])):
            if (j % 2 ):
                temp += s[i][j].lower()
            else:
                temp += s[i][j].upper()
        answer.append(temp)
        temp = ''
    return (" ").join(answer)

 

코드 2

def solution(s):
    s_word_list = s.split(" ")
    answer = ''
    for s_word in s_word_list:
        s_word_unit = list(s_word)
        for i in range(len(s_word_unit)):
            if i % 2 == 0:
                s_word_unit[i] = s_word_unit[i].upper()
            elif i % 2 == 1:
                s_word_unit[i] = s_word_unit[i].lower()

        result = "".join(s_word_unit)
        if len(answer):
            answer += f" {result}"
        else:
            answer += result

    return answer
저작자표시 비영리 변경금지 (새창열림)

'Algorithm' 카테고리의 다른 글

[프로그래머스] 시저 암호  (0) 2022.08.18
[프로그래머스] 약수의 합  (0) 2022.08.18
[프로그래머스] 최대공약수와 최소공배수  (0) 2022.08.17
[프로그래머스] 소수 찾기  (0) 2022.08.17
[프로그래머스] 문자열 내림차순으로 배치하기  (0) 2022.08.17
    'Algorithm' 카테고리의 다른 글
    • [프로그래머스] 시저 암호
    • [프로그래머스] 약수의 합
    • [프로그래머스] 최대공약수와 최소공배수
    • [프로그래머스] 소수 찾기
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바