TIL(24.12.30)

채채·2024년 12월 30일

Today I Learned

목록 보기
46/75

파이썬에서 len의 활용문제.

len(iterable)은 길이 또는 크기를 반환함.

코드카타 문제를 풀 때 문제에 '길이'라고 써있어야 len을 활용했는데, 다른 분들 답변을 보면 len을 다양하게 활용하고 있는 것 같아 공부해보고자 함.

오늘 푼 코트카타 문제 중 팀원분의 코드와 나의 코드 비교(위:팀원, 아래:나)

#77.배열에서 문자열 대소문자 변환하기
def solution(strArr):
    for i in range(len(strArr)):
        if i % 2== 0:
            strArr[i] = strArr[i].lower()
        elif i % 2 == 1:
            strArr[i] = strArr[i].upper()
    return strArr
    
--------------------------------------------------------

def solution(strArr):
    answer = []
    for i in strArr :
        if strArr.index(i) % 2 == 1 :
            answer.append(i.upper())
        else :
            answer.append(i.lower())
        
    return answer

팀원분은 len 함수를 사용한 반면,
나는 배열의 요소를 바로 불러오는 방법을 선택하였는데,

나의 방법에서는 동일한 값이 들어 있을 때, 앞에 있는 인덱스만 반환하기 때문에 원하는 값이 안 나올 수 도 있을 것 같음.

예를 들어)

strArr = ['apple', 'apple', 'banana', 'orange']

일 경우, 앞에 arr[0]의 'apple'는 소문자로, arr[1]의 'apple'는 대문자로 나와야 하는데, 둘 다 arr.index('apple')로 들어가기 때문에, 둘 다 index값이 [0]이 나와서 둘 다 소문자로 표현 될 것 같음.

직접 vscode 돌려보니

'apple' 둘 다 소문자로 출력된 걸 확인할 수 있었음.

len을 활용해서 index의 범위를 정하고,
for문을 돌린 후, if문을 통해 조건을 주어 다시 인덱스 활용해서 요소를 찾아내는게 더 안전한 방법 인 것 같음.
직접 vscode를 통해 확인함.


개발이 창의력의 영역이라고 하는게 잘 이해가 안됐는데, 문제를 풀면 풀수록 창의력의 영역이 맞는 것 같음.
창의력은 탄탄한 기초와 수많은 경험에서 나오므로,,,
문제를 많이 풀어보고, 나와 다른 답변 코드도 열심히 공부해보면 나도 언젠간 좋은 코드를 작성할 수 있겠지,,,!

profile
화이팅

0개의 댓글