최댓값

Sooin Yoon·2025년 3월 28일

가장 큰 값을 찾자! max()함수를 사용할수도 있지만 사용하지 않고

nums = [-2, -4, 5, 7, 10, 0, 8, 20, -11]
maxNum = max(nums)

class MaxAlgorithm:
    def __init__(self, ns):
        self.nums = ns
        self.maxNum = 0

    def getMaxNum(self):
        self.maxNum = self.nums[0]

        for n in self.nums:
            if self.maxNum < n:
                self.maxNum = n

        return self.maxNum

ma = MaxAlgorithm([-2, -4, 5, 7, 10, 0, 8, 20, -11])
maxNum = ma.getMaxNum()
print(f'maxNum: {maxNum}')

문제 : 리스트에서 아스키코드가 가장 큰 값을 찾는 알고리즘을 만들어보자

class MaxAlgorithm:
    def __init__(self, cs):
        self.chars = cs
        self.maxChar = 0

    def getMaxChar(self):
        self.maxChar = self.chars[0]


        for c in self.chars:
            if ord(self.maxChar) < ord(c):
                self.maxChar = c
        return self.maxChar
chars = ['c', 'x', 'Q', 'A', 'e', 'P', 'p']
mc = MaxAlgorithm(chars)
maxChar = mc.getMaxChar()
print(f'maxChar: {maxChar}')

최대값 큰 수 2개 찾기

def solution(nums):
    maxNum = 0
    secondNum = 0
    for num in nums:
        if num > maxNum:
            secondNum = maxNum  #max가 갱신되기 전에 저장
            maxNum = num
        elif num > secondNum:
            secondNum = num
    return (maxNum-1)*(secondNum-1)

더 간단히 풀수있는 방법 sort() 함수 사용
1.

 def solution(nums):
    nums_list = sorted(nums)
    return (nums_list[-1] - 1)* (nums_list[-2] -1)
def solution(nums):
	nums.sort() #  nums 자체가 바뀜, in-place 정렬
	return (nums[-1] - 1)* (nums[-2] -1)

0개의 댓글