230201
문제 설명
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ my_string의 길이 ≤ 1,000
my_string은 영어 대문자와 소문자로만 구성되어 있습니다.
def solution(my_string):
return my_string.swapcase()
이 방법을 구글링해서 찾기 전, 처음에는 for문과 if을 이용하려고 했었다. 문자가 [a-z]면...upper하고 반대면 lower하라는 형식으로 코드를 짜려고 했으나 조금 더 구글링해보니 굳이 코드를 구성하지 않아도 한 번에 해결해주는 내장함수를 발견할 수 있었다.
swapcase()를 사용하면 대소문자를 상호 전환할 수 있다.
즉, 대문자는 소문자로 소문자는 대문자로 한 번에 전환할 수 있다.
def solution(my_string):
answer = ''
for i in my_string:
if i.isupper():
answer+=i.lower()
else:
answer+=i.upper()
return answer
역시 내가 하려던 코드가 있다
def solution(my_string):
return ''.join([x.lower() if x.isupper() else x.upper() for x in my_string])
오! 위랑 비슷한데 join을 이용해 할 수도 있다는 것을 알게 되었다. 문자열을 리스트로 변환하여 각 원소에 대해 바꾸는 방법이다.
230201
문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
1 < my_string의 길이 < 100
0 ≤ num1, num2 < my_string의 길이
my_string은 소문자로 이루어져 있습니다.
num1 ≠ num2
입출력 예
my_string | num1 | num2 | result |
---|---|---|---|
"hello" | 1 | 2 | "hlelo" |
"I love you" | 3 | 6 | "I l veoyou" |
def solution(my_string, num1, num2):
my_list = list(my_string)
my_list[num1],my_list[num2] = my_list[num2], my_list[num1]
return ''.join(i for i in my_list)
문자열에서 swap하려니 안 돼서 list로 바꿔한 뒤 다시 문자열로 바꿈..
def solution(my_string, num1, num2):
s = list(my_string)
s[num1],s[num2] = s[num2],s[num1]
return ''.join(s)
오 나랑 같은데 근데 join안에 for문 안써도 되나보네?!
뭐야 그동안 왜 쓴거지??