파이썬/코딩테스트

Day3.코딩 기초 트레이닝 프로그래머스 파이썬

해봄544 2024. 1. 7. 23:48

1. 문자열 섞기

 

def solution(str1,str2):
    answer=''
   for i in range(len(str1)):
       answer += ''.join(str1[i]+str2[i])
    
    return answer
더보기

 

''.join 은 문자열을 연결하는 함수이다.

더보기
def solution(str1, str2):
    answer = ''
    len1, len2 = len(str1), len(str2)
    max_len = max(len1, len2)

    for i in range(max_len):
        if i < len1:
            answer += str1[i]
        if i < len2:
            answer += str2[i]

    return answer

이 코드 또한 가능하다. 

 

 

 

2. 문자 리스트를 문자열로 변환하기

def solution(arr):
    answer=''.join(arr)
    return answer

 

3. 문자열 곱하기

def soluton(my_string,k):
    return my_string*k

 

4. 더 크게 합치기

 

def solution (a,b):
    answer =0
    ans =int(str(a)+str(b))
    ans2=int(str(b)+str(a))
    
    if ans < ans2:
       answer = ans2
    else:
       answer = ans
    retuen answer

 

 

더보기

처음 한 코딩

def solution(a, b):
    answer = 0
    if (a,b,sep='')<(b,a,sep=''):
        answer = (b,a,sep='')
    else:
        answer = (a,b,sep='')
    return answer

 

1. sep=' ' 는 문자열 포맷팅에 사용 되는 옵션으로 튜플 비교에는 적절하지 않다.

2.  answer에서 반환할 때,  연산 결과를 반환해야 하지만 튜플이 반환되어 틀렸다.

다른 사람들이 한 코딩   

def soution(a,b):
     answer = 0
     return max(int(str(a)+str(b)),int(str(b)+str(a))

 

5. 두 수의 연산값 비교하기

 

 

def solution(a,b):
   answer = 0
   return max(int(str(a)+str(b)),(2*a*b))

 

 

더보기

단, 같을때 경우를 변수로 넣지 않은게 신경쓰여 다시 해봤다.

 

def solution(a,b):
     answer =0
     if int(str(a)+str(b))<2*a*b:
        answer = 2*a*b
     else:
         answer = int(str(a)+str(b))
     return answer

 두 경우 모두 테스트에 통과지만 아마 4번의 다른사람들 풀이를 보지 않았다면 위와같이 했을것 같다.