[구름톤 챌린지] 블로그학습일기 1주차(2)

ego2·2023년 8월 20일
0

구름톤 챌린지

목록 보기
2/6
post-thumbnail

블럭을 모아 성장한 나의 캐릭터 모습이다. 2주차에는 어떤 모습으로 변할지 기대 된다!!

4일차 : 완벽한 햄버거 만들기

import sys

input = sys.stdin.readline

n = int(input().rstrip())

# 맛 정도 리스트 초기화
tastes = list(map(int , input().split()))



def taste_fnc(n, tastes):
    # 최고 맛도리 인덱스 찾기
    max_taste_idx = tastes.index(max(tastes))

    for i in range(max_taste_idx, n-1):
        if tastes[i] < tastes[i+1]:
            return 0
        
    for i in range(max_taste_idx -1, 0, -1):
        if tastes[i] < tastes[i-1]:
            return 0
        
    return sum(tastes)


print(taste_fnc(n, tastes))

맛정도가 가장 높은 재료 기준으로 오른쪽, 왼쪽으로 갈수록 점점 맛정도가 작아져야한다.

맛정도를 리스트로 입력을 받은 후 최고 맛정도가 위치한 인덱스를 찾아 왼쪽, 오른쪽을 나누어 바로 옆 값과 비교해 나가면 된다!

시간복잡도는 O(n)

5일차 : 이진수 정렬

import sys

input = sys.stdin.readline

n, k = map(int, input().split())

arr = list(map(int, input().split()))

# 첫번째 정렬
sorted_arr = sorted(arr, key=lambda x: (-(bin(x).count('1')), -x))

print(sorted_arr[k-1])

2진수로변환 후 1의 숫자가 더 많은 기준으로 내림차순, 1의 개수가 같은면 변환 전 10진수 기준으로 내림차순으로 정렬한다.

배운점!

lambda 식에서 음수로 정렬하면 내림차순인 이유!

[3, 2, 1]를 오름차순 => [1, 2, 3]
음수 취하면 [-3, -2 ,-1]을 오름차순 => [-3, -2, -1]
따라서 원래의 값으로 돌리면 [3, 2, 1]같이 내림차순으로 정렬됨.

profile
고민의 흔적들을 기록하는 공간입니다.

0개의 댓글