문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
- s는 길이 1 이상 200 이하인 문자열입니다.
- s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
- 숫자는 단어의 첫 문자로만 나옵니다.
- 숫자로만 이루어진 단어는 없습니다.
- 공백문자가 연속해서 나올 수 있습니다.
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
문제
주어진 문자열 s를 받아 단어의 첫 알파벳을 대문자로 바꾸고, 나머지 알파벳은 소문자로 바꾸어 정답을 출력하면 된다.
처음에 제한 조건 중, 공백문자가 연속해서 나올 수 있습니다 를 간과하여 오답처리가 됬었다... 어쨌든 단어의 첫 번째 알파벳을 대문자로 바꿔줄 때, 사용할 수 있는 여러 함수가 있는데 이걸 먼저 알아보자!
1. upper() 메소드 : 모든 알파벳을 대문자로 변환 해 준다
# upper()
word = 'abcd'
print(word.upper())
출력결과 >> "ABCD"
2. capitalize() : 맨 첫글자만을 대문자로 변환 해 준다.
# capitalize()
Case 1
word1 = "i'm still hungry"
print(word.capitalize())
출력결과 >> "I'm still hungry"
Case 2
word2 = "aNGRYbird is still angry"
print(word2.capitalize())
출력결과 >> "Angrybird is still angry"
3. title() : 주어진 문제처럼 알파벳 이외의 문자(숫자, 특수기호, 띄어쓰기) 등으로 나뉘어진
단어들의 첫 글짜를 모두 대문자로 바꿔준다.
# title()
sentence = "for the last week"
print(sentence.title())
출력결과 >> "For The Last Week"
나는 3번 title() 메서드를 사용하여 문제를 풀이했다!
나으 ㅣ 라임나무는 아니고 허접한 나으 ㅣ 코드를 보자!
코드 설명
문제의 제한 조건을 보면, 숫자는 항상 단어의 첫 문자로만 나온다는 조건이 있다. 이 점을 이용해서 문제를 풀었는데
첫번째로, title() 메서드를 이용하여 각 단어의 첫 글자를 모두 대문자로 바꿔주었다.
주의할 점은 첫 번째 입출력 예의 경우 title() 메서드를 이용하면 3People Unfollowed Me 가 되는데, 숫자 다음에 오는 알파벳은 소문자가 되어야 하므로, 숫자 뒤 문자를 소문자로 바꿔준 후 answer 에 더해준다.
두 번째로, 공백이 연속해서 나올 경우에는 else 로 분류가 되어 자동적으로 answer에 더해지므로, 공백이 연속되어 나와도 문제가 없었다.
마지막으로 cnt가 주어진 문자열의 총 길이보다 길어지면 out of range index 에러가 나므로, cnt 와 주어진 문자열의 총 길이와 같아진다면 while 문을 나온다. 이렇게 코드를 제출하면,
나의 귀염 뽀짝한 코드도 정답처리가 된 것을 알 수 있다. 파이썬의 장점은.. 알아보기 쉽고, 코드를 압축하여 쉽게 활용할 수 있다는 점인데 아직 나의 코드는 파이썬 스럽지 않다... 이것은 내가 잘 해결해야 할 문제인 것으로.. 이번 문제를 마친다.
'Coding Test Practice > 프로그래머스' 카테고리의 다른 글
프로그래머스, [1차] 캐시, python, 파이썬 (0) | 2022.10.21 |
---|---|
프로그래머스 Level2, 점프와 순간 이동, python (0) | 2022.10.18 |
프로그래머스 다음 큰 숫자 python (0) | 2022.09.19 |
프로그래머스 올바른 괄호 python (0) | 2022.09.14 |
프로그래머스 Level2, N개의 최소 공배수 (0) | 2022.07.19 |