728x90
1. Python 대소문자 바꿔서 출력하기
문제설명
영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
나의 풀이
str = input()
list = str.strip()
result = ''
for i in list:
if i.isupper():
result += i.lower()
else:
result += i.upper()
print(result)
문자열 str을 strip으로 알파벳 하나씩 list에 넣어 각각 문자가 대문자일때와 소문자일때의 조건을 나누어 변환한 뒤 result라는 문자열로 출력되도록 하였다.
정말 놀랍게도 다른 분들의 풀이를 보니 대소문자를 변환하는 명령어 자체가 있었다~!!
print(input().swapcase())
swapcase가 대소문자를 바꿔주는 기능을 한다.
생각해보니 굳이 list로 나누지 않고 for문으로 for i in str로 하여 result에 넣어주면 될 듯 하다.
2. 배열에서 문자열 대소문자 변환하기
문제 설명
문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.
나의 풀이
def solution(strArr):
index = 0
answer = []
while index < len(strArr):
if index % 2 == 0 :
answer.append(strArr[index].lower())
else:
answer.append(strArr[index].upper())
index += 1
return answer
다른 분들의 풀이를 보고 이번에도 index나 while문을 조건을 주고 따로 돌릴 필요 없이 enumerate를 사용해서 인덱스와 값 을 받아와서 for문으로 돌린 값을 배열에 넣어 return해주면 된다는 것을 알게되었다.
어째서 내가 풀려고 하면 생각이 나지 않을까.. 조금 더 분발해야되겠다^^
def solution(strArr):
return [s.lower() if i % 2 == 0 else s.upper() for i, s in enumerate(strArr)]
728x90
'프로그래머스' 카테고리의 다른 글
프로그래머스 Python 모음제거 / x만큼 간격이 있는 n개의 숫자 (4) | 2023.11.22 |
---|---|
프로그래머스 Python 최댓값 만들기 / Lv2 최댓값과 최솟값 (1) | 2023.11.20 |
프로그래머스 삼각형의 완성조건 (2) | 2023.11.20 |
프로그래머스 Python 피자나눠먹기 (6) | 2023.11.20 |
프로그래머스 Python3 코드 처리하기 (7) | 2023.11.18 |