제로베이스 알고리즘(13~22)

ningbbang·2023년 4월 2일
0

Zerobase DS13

목록 보기
19/48

1. 최대값
자료구조에서 가장 큰 값

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


import random

nums = random.sample(range(1, 1000), 20)
print(nums)
ma = MaxAlgorithm(nums)
maxNum = ma.getMaxNum()
print(maxNum)

2. 최솟값
자료구조에서 가장 작은 값

class MinAlgorithm:

    def __init__(self, ns):
        self.nums = ns
        self.minNum = 0

    def getminNum(self):
        self.minNum = self.nums[0]

        for n in self.nums:
            if self.minNum > n:
                self.minNum = n

        return self.minNum


import random

nums = random.sample(range(1, 1000), 20)
print(nums)
ma = MinAlgorithm(nums)
minNum = ma.getminNum()
print(minNum)

3. 최빈값
자료구조에서 가장 빈도가 높은 값

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

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

        for i, n in enumerate(self.nums):
            if self.maxNum < n:
                self.maxNum = n
                self.maxNumIdx = i

    def getMaxNum(self):
        return self.maxNum

    def getMaxNumIdx(self):
        return self.maxNumIdx


import random
nums = []
for i in range(20):
    nums.append(random.randint(1,10))
print(nums)

maxNums = MaxAlgorihtm(nums)
maxNums.setMaxIdxAndNum()
maxNum = maxNums.getMaxNum()
maxNumIdx = maxNums.getMaxNumIdx()

indexes = [0 for i in range(maxNum + 1)]
print('indexex = {}'.format(indexes))

for n in nums:
    indexes[n] = indexes[n] + 1
print(f'indexes : {indexes}')

maxAlo = MaxAlgorihtm(indexes)
maxAlo.setMaxIdxAndNum()
maxNum = maxAlo.getMaxNum()
maxIdxNum = maxAlo.getMaxNumIdx()
print(maxNum)
print(maxIdxNum)

4. 근삿값
자료구조에서 찾는 값과 가장 근사한 값

import random

nums = random.sample(range(1, 50), 20)
print(nums)

inputNum = int(input('찾을 정수 입력 :'))

nearNum = 0
minNum = 50 #최댓값

for n in nums:
    absNum = abs(n - inputNum)
    if absNum < minNum:
        minNum = absNum
        nearNum = n

print(f'nearNum : {nearNum}')
print(f'absNum : {minNum}')

5. 평균
자료구조 내의 값의 평균값

import random

nums = random.sample(range(1, 100), 20)
print(nums)

sumN = 0
avgN = 0

for n in nums:
    sumN += n

avgN = sumN / len(nums)
print(sumN)
print(avgN)

targetNum = []
for n in nums:
    if n >= 50 and n <= 90:
        sumN += n
        targetNum.append(n)
avgN = sumN / len(targetNum)

print(sumN)
print(len(targetNum))
print(avgN)
profile
HR Anaylist!

0개의 댓글