문제
https://school.programmers.co.kr/learn/courses/30/lessons/12951
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
입출력 예
s return
"3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week"
키워드
- 문자열
해결 방법
풀이1 : 처음 풀이
def solution(s):
answer = ''
start = True
for i in range(len(s)):
if s[i] == ' ':
answer += s[i]
start = True
elif s[i].isnumeric():
answer += s[i]
start = False
elif start:
answer += s[i].upper()
start = False
else:
answer += s[i].lower()
return answer
- isnumeric() : 문자열이 숫자인지 확인
- upper() : 대문자로 변환
- lower() : 소문자로 변환
풀이2: 개선 방법
def solution(s):
answer = ''
s = s.split(' ')
for i in range(len(s)):
s[i] = s[i].capitalize()
answer = ' '.join(s)
return answer
- capitalize() : 문장의 첫 단어의 첫 글자만 대문자로 바꾸는 경우에 사용.
- title() : 문장의 모든 단어의 첫 글자를 대문자로 바꾸는 경우에 사용.
- 주의사항) title()은 문자열에서 알파벳 외의 문자(숫자, 특수기호, 띄어쓰기 등)로 시작하면, 알파벳 외의 문자 다음에 이어지는 첫 글자를 대문자로 바꾼다.
- ‘구분자’.join(리스트) : 구분자를 넣어 하나의 문자열로 만든다.
정리
문자열 관련 함수
- isnumeric() : 문자열이 숫자인지 확인
- upper() : 대문자로 변환
- lower() : 소문자로 변환
- capitalize() : 문장의 첫 단어의 첫 글자만 대문자로 바꾸는 경우에 사용.
- title() : 문장의 모든 단어의 첫 글자를 대문자로 바꾸는 경우에 사용.
- 주의사항) title()은 문자열에서 알파벳 외의 문자(숫자, 특수기호, 띄어쓰기 등)로 시작하면, 알파벳 외의 문자 다음에 이어지는 첫 글자를 대문자로 바꾼다.
- ‘구분자’.join(리스트) : ‘구분자’에 들어온 구분자를 넣어 하나의 문자열로 만든다.
s = "for the last week"
print(s.capitalize()) # For the last week
print(s.title()) # For The Last Week
s = "for the Last weEk"
print(s.capitalize()) # For the last week
print(s.title()) # For The Last Week
s = "3#people Unfollowed Me"
print(s.capitalize()) # 3#people unfollowed me
print(s.title()) # 3#People Unfollowed Me
s = ['for', 'the', 'last', 'week']
print(' '.join(s)) # for the last week
print('-'.join(s)) # for-the-last-week
728x90
'99클럽 코테스터디' 카테고리의 다른 글
[99클럽 코테 스터디 6일차 TIL] 의상 (0) | 2024.07.27 |
---|---|
[99클럽 코테 스터디 5일차 TIL] 전화번호 목록 (0) | 2024.07.27 |
[99클럽 코테 스터디 3일차 TIL] 문자열 내 마음대로 정렬하기 (0) | 2024.07.27 |
[99클럽 코테 스터디 2일차 TIL] x만큼 간격이 있는 n개의 숫자 (0) | 2024.07.27 |
[99클럽 코테 스터디 1일차 TIL] n^2 배열 자르기 (0) | 2024.07.25 |