level1_이상한 문자 만들기
2024. 2. 25. 18:32ㆍ파이썬_알고리즘(코딩테스트)/level1

내가 제출한 코드
def solution(s):
answer = ""
list = s.split(" ")
for i in list:
for j in range(len(i)):
if j % 2 == 0:
answer += i[j].upper()
else:
answer += i[j].lower()
answer += " "
return answer[0:-1]
s.split(" ") 는 공백 문자를 기준으로 문자열을 나눈다.
s = "try hello world"라면 ["try", "hello", "world"]로 나눠준다.
다른 사람이 제출한 코드
def toWeirdCase(s):
return " ".join(map(lambda x:"",join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))
1. s.split(" ") : 문자열 s를 공백을 기준으로 나누어 단어의 리스트로 변환한다.
2. map(..., s.split(" ")) : 분할된 각 단어에 대해 지정된 함수를 적용
3. lambda x : 람다 함수는 각 단어를 인자로 받아 변환된 단어를 반환한다.
4. [a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]: 리스트 컴프리헨션을 사용하여, 각 단어 x의 문자를 순회하면서 인덱스 i가 짝수일 경우 대문자로, 홀수일 경우 소문자로 변환
5. "".join(...) : 앞서 리스트 컴프리헨션에서 생성된 문자들을 하나의 문자열로 결합
6. " ".join(...) : map 함수를 통해 변환된 각 단어를 공백으로 다시 결합하여 전체 문자열을 반환
"".join()에 대해서 예시 하나만 들어보자면
s = ["try", "hello", "world"]
x = " ".join(s)
print(x) # 출력 : "try hello world"
'파이썬_알고리즘(코딩테스트) > level1' 카테고리의 다른 글
| level1_삼총사 (0) | 2024.02.26 |
|---|---|
| level1_크기가 작은 부분문자 (0) | 2024.02.26 |
| level1_예산 (0) | 2024.02.23 |
| level1_3진법 뒤집기 (0) | 2024.02.22 |
| level1_같은 숫자는 싫어(스택/큐) (0) | 2024.02.21 |