프로그래머스 연습문제 - JadenCase 문자열 만들기(level2)

j_wisdom_h·2022년 11월 14일
0

CodingTest

목록 보기
8/58
post-thumbnail

프로그래머스 연습문제 - JadenCase 문자열 만들기(level2)

문제설명


제한조건 & 입출력예

My Solution

def solution(s):
    arr = []
    for item in s.split(" "):
        item = item.lower().capitalize()
        arr.append(item)
    return " ".join(arr)

처음에는 아래처럼 삼항 연산자(Ternary Operator)를 이용해 풀었었는데 런타임에러가 나서 수정작업을 거쳤고

item = item.lower() if item[0].isdigit() else item.lower().capitalize()

그 다음에는 title() 함수를 쓰게 되었는데
위의 입출력 예제 3people이 3People로 변하기 때문에 다시 수정했다!


공부한 내용

1. lower(), upper()

string 소문자/대문자로 바꾸기

s = 'Hello world!'
s.lower() # hello world!

print(s) # Hello world! ( 값을 할당하지 않으면 값이 변하지 않는다 )

2. upper(),title(),capitalize()차이

  • upper() : 모든 알파벳을 대문자로 변환
  • title() : 알파벳 외 문자(숫자,특수기호,띄어쓰기 등)로 나누어져 있는 영단어들의 첫글자를 모두 대문자로 변환
  • capitalize() : 맨 첫글자만 대문자로 변환

3. 문자, 숫자 판별

출처 : https://cotak.tistory.com/137

1) 숫자 판별 - isdecimal( ), isdigit( ), isnumeric( )

  • isdecimal( ) ⊆ isdigit( ) ⊆ isnumeric( )
  • isdecimal( ): 어떤 문자열이 int형으로 변환이 가능하면 True를 반환한다.
  • isdigit( ): 어떤 문자열이 숫자의 형태면 True를 반환한다. (예: 3², ², ..)
  • isnumeric( ): 숫자값 표현에 해당하는 문자열이면 True를 반환한다. (예: 3², ², ½, ...)
s = "28212"
print(s.isdigit())	# True

# contains alphabets and spaces
s = "Mo3 nicaG el l22er"
print(s.isdigit())	# False

2) 문자열 판별 - isalpha( )

문자열이 알파벳으로만 구성 되어 있는지 판별한다. 공백이 있으면 false

name = "Monica"
print(name.isalpha())	# True

# contains whitespace
name = "Monica Geller"
print(name.isalpha())	# False

3) 숫자 + 문자열 판별 isalnum( )

문자열이 알파벳+숫자로만 구성되어 있는지 판별한다.
알파벳이나 숫자 둘 중 하나로만 구성되어 있어도 True를 반환하고, 공백이 있으면 False를 반환한다.

name = "M234onica"
print(name.isalnum())	# True

# contains whitespace
name = "M3onica Gell22er "
print(name.isalnum())	# False

4. '구분자'.join(리스트)

profile
뚜잇뚜잇 FE개발자

0개의 댓글