본문 바로가기
TIL

99클럽 21번째 TIL

by double-step 2024. 4. 14.
728x90
반응형
SMALL

99클럽 21번째 TIL

프로그래머스 자릿수 더하기

 

비기너 문제

문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항
N의 범위 : 100,000,000 이하의 자연수
입출력 예
N answer
123 6
987 24
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.

입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

 

정답

def solution(n):
    answer = 0

    n = list(str(n))
    for i in range(len(n)):
        answer += int(n[i])

    return answer

 

풀이

받은 n을 문자열로 변형 시켜서 각 요소를 하나씩 더했다.

 

미들러 문제

JadenCase 문자열 만들기

문제 설명
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"
※ 공지 - 2022년 1월 14일 제한 조건과 테스트 케이스가 추가되었습니다.

 

정답

def solution(s:str)->str:
    return ' '.join([i[0].upper() + i[1:].lower() if i!= '' and i[0].isalpha else i.lower() for i in s.split(" ")])

 

풀이

해당 문자열을 돌면서 단어의 첫번째를 대문자로 바꾸고 나머지를 소문자로 바꾸는데 다음과 같은 조건이 만족할때 바꾼다. 만약 단어가 공백이 아니고 단어의 첫번째 문자가 알파벳일때 바꾼다 .만약 아니라면 단어를 소문자로 바꾼다.
반복문은 문자열을 공백을 기준으로 자른만큼 반복한다. else 부분은 단어의 맨 앞에 숫자가 올 수 있기 때문이다.

728x90
반응형
LIST