본문 바로가기
  • 머킹이의 머신로그
오늘부터 코딩테스트

[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기

by 머킹 2023. 11. 2.
728x90
 
 

[파이썬] 프로그래머스 Lv0. 배열 비교하기, 문자열 묶기

 

안녕하세요 머킹입니다.

오늘 vscode로 git에 commit 하는 것을 배웠는데

내일부터 그렇게 올려보기로 마음 먹었습니다!

 

그리고 github에 있는 모델을 파인튜닝 하는 방법을 열심히 배우고 싶습니다..

쓰고 싶은 모델은 많은데 파인튜닝이 어려워서 자꾸 헤매는 것 같아서 

꼭 제대로 배워보고 싶어요!

 


배열 비교하기

 

문제 설명

이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.

두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.

 

배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.

두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1,

두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.

 

def solution(arr1, arr2):
    if len(arr1) < len(arr2):
        return -1
    elif len(arr1) > len(arr2):
        return 1
    
    sum_arr1 = sum(arr1)
    sum_arr2 = sum(arr2)
    
    if sum_arr1 < sum_arr2:
        return -1
    elif sum_arr1 > sum_arr2:
        return 1
    else:
        return 0

엄청나게 길고 멋진 코드를 잤습니다 ㅎ

아니 다른 사람의 답을 보는데 진짜.. 말이 안 나오더라고요

def solution(arr1, arr2):
    return (len(arr1) > len(arr2)) - (len(arr2) > len(arr1)) or (sum(arr1) > sum(arr2)) - (sum(arr2) > sum(arr1))

와 이 코드를 보는데 진짜 어떻게 이 생각을 했지? 싶었어요.

대단합니다.

 


문자열 묶기

 

문제 설명

문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때

가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.

 

def solution(strArr):
    group_dict = {}

    for string in strArr:
        length = len(string)
        if length not in group_dict:
            group_dict[length] = 1
        else:
            group_dict[length] += 1
        
    max_group_size = max(group_dict.values())
    
    return max_group_size
def solution(strArr):
    a=[0]*31
    for x in strArr: a[len(x)]+=1
    return max(a)

다른 사람의 풀이를 꼭 보는 게 좋은 것 같아요

어떻게 생각하는지 정말 접근법이 다양해서 

아직은 제가 초보지만 나중에는 이렇게 보는 눈을 길러둔 게 꼭 도움 될 것 같습니다.