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