코딩,해볼까

07.20. 프로그래머스 : 대문자와 소문자, 인덱스 바꾸기, 배열의 유사도 본문

Back/TIL

07.20. 프로그래머스 : 대문자와 소문자, 인덱스 바꾸기, 배열의 유사도

떠굥 2023. 7. 21. 08:29

< 대문자와 소문자 >

1. 나의 풀이

def solution(my_string):
    return my_string.swapcase()

2. 풀이과정

def solution(my_string):
    # answer = ''
    # print(dir(str))

    # for i in my_string:
    #     if i == i.upper():
    #         answer += i.lower()
    #     else:
    #         answer += i.upper()
                  
    return my_string.swapcase()

 

< 인덱스 바꾸기 >

1. 나의 풀이

def solution(my_string, num1, num2):
    list_string = list(my_string)
    list_string[num1] = my_string[num2]
    list_string[num2] = my_string[num1]
    print(my_string.strip(), my_string)
    return ''.join(list_string)

2. 풀이과정

def solution(my_string, num1, num2):
    answer = ''
    print(dir(str))
    str1 = my_string[num1]
    str2 = my_string[num2]
    # str11 = my_string.replace(my_string[num1], str2)
    # str22 = str11.replace(my_string[num2], str1)
    # print(str22)  

    for i in range(len(my_string)):
        if i == num1:
            answer += str2
        elif i == num2:
            answer += str1
        else:
            answer += my_string[i]
    # 인덱스는 인덱스끼리 (숫자는 숫자끼리) 비교
    return answer
    
    
    # replace(1,2) 2개의 arg 둘 다 문자
    # str01 = my_string.replace(my_string[num1], my_string[num2]) and my_string.replace(my_string[num2], my_string[num1])
    # my_string.replace(my_string[num2], my_string[num1])
    # 하나를 바꾸고 또 하나를 바꾸면 겹친다. and를 써도 겹친다.

 

< 배열의 유사도 >

1. 나의 풀이

def solution(s1, s2):
    answer = 0
    for i in s1:
        if i in s2:
            answer += 1
    return answer

2. 풀이과정

def solution(s1, s2):
    answer = 0
    # 문자열은 ""로 묶여있으니까 1대 1로 비교해야 한다.
    # for i in s1:
    #     for ii in s2:
    #         if i == ii: #1 대 1
    #             answer += 1
    print(dir(list))
    
    # 1대 배열이 가능한 이유는 배열이기 때문에! 
    for i in s1:
        if i in s2: # 1 대 배열
            answer += 1
    return answer

 

Comments