오늘의 학습 키워드: split, capitalize
문제: JadenCase 문자열 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12951#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
연속된 공백문자에 주의해서 풀어야 합니다. 두 방식으로 풀이합니다.
1. 조건 걸어서 판별
공백이 아니라면 임시 문자열을 생성한 후 공백이 나온다면 JadenCase를 적용해서 리턴에 적용합니다.
def solution(s):
answer = ''
tmp = ''
for i in s:
if i!=' ':
tmp+=i
else:
if tmp !='':
tmp = tmp[0].upper() + tmp[1:].lower()
answer+=tmp
tmp = ''
answer+= ' '
if tmp !='':
tmp = tmp[0].upper() + tmp[1:].lower()
answer+=tmp
return answer
2. split과 capitalize 사용하기
백준의 sys.stdin.readline().split()을 자주 사용하다가 split()을 이용하니까 공백이 모두 사라지는 현상이 발생했습니다.
def solution(s):
words = s.split()
print(words)
이 코드의 결과는 아래 사진과 같습니다. 공백이 전혀 들어가있지 않습니다.
이해를 돕기 위해 테스트 케이스를 임의로 만들어서 진행했습니다.
그런데 문제에는 공백문자가 연속해서 나올 수 있음을 말합니다.
따라서 공백값도 필요하다는 의미입니다.
이 경우에는 split(" ")을 사용해 공백을 갖고 분리한다고 넣어주면 됩니다.
def solution(s):
words = s.split(" ")
print(words)
공백 값도 정상적으로 리스트에 들어간 것을 확인 가능합니다.
이제 첫 문자만 대문자로 변경해주어야합니다.
위에서 처럼 인덱스를 가지고 값을 변경해줄 수 있지만.. 내장 함수를 사용해 봅니다.
def solution(s):
words = s.split(" ")
words2 = []
for i in words:
words2.append(i.capitalize())
answer = ' '.join(words2)
return answer
이렇게 capitalize() 함수를 사용하면 각 단어의 첫 글자를 대문자로 변환 가능합니다.
회고
실은 " " 이렇게 넣어줘도 공백이 안 들어오는 줄 알았습니다... 되네요? 하나 배웠습니다.
내일 학습할 것.
SQL, 코딩테스트 준비, 프로젝트... 실은 이력서 정리를 좀 할까 합니다.
'코딩테스트 > 알고리즘' 카테고리의 다른 글
99클럽 코테 스터디 6일차 TIL + 의상 (0) | 2024.07.28 |
---|---|
99클럽 코테 스터디 5일차 TIL + 전화번호 목록 (0) | 2024.07.26 |
99클럽 코테 스터디 3일차 TIL + 문자열 내 마음대로 정렬하기 (3) | 2024.07.24 |
99클럽 코테 스터디 2일차 TIL + x만큼 간격이 있는 n개의 숫자 (0) | 2024.07.24 |
99클럽 코테 스터디 1일차 TIL + n^2 배열 자르기 (3) | 2024.07.22 |