DevSSOM
자료구조 - 최대값 기계 문제 본문
반응형
최댓값 기계
이번 문제에서는 최댓값 기계를 만들어 봅니다. 이 최댓값 기계는 숫자를 여러개 담을 수 있으며, 담겨있는 숫자들 중에서 최댓값을 반환할 수 있습니다. 조금 더 자세히 이야기하면, 다음의 기능을 지원합니다.
- machine.addNumber(x) : 숫자 x를 최댓값 기계 machine에 추가합니다.
- machine.removeNumber(x) : 숫자 x를 최댓값 기계 machine으로부터 제거합니다. 만약 숫자 x가 최댓값 기계 내에 없다면 아무 일도 일어나지 않습니다.
- machine.getMax() : 최댓값 기계 machine이 갖고있는 숫자들 중 최댓값을 반환합니다.
예를 들어, 최댓값 기계의 이름이 myMachine이고 숫자 2, 5, 3, 4 를 각각 추가하기 위해서는 다음의 명령어를 사용합니다.
myMachine.addNumber(2)
myMachine.addNumber(5)
myMachine.addNumber(3)
myMachine.addNumber(4)
이후 myMachine.getMax() 를 호출하면, 이는 5를 반환하게 됩니다. class를 이용하여 최댓값 기계를 구현하세요.
class maxMachine :
def __init__(self) :
pass
def addNumber(self, n) :
pass
def removeNumber(self, n) :
pass
def getMax(self) :
pass
def main():
myMachine = maxMachine()
'''
테스트를 하고싶으면, 아래 부분을 수정합니다.
'''
myMachine.addNumber(1)
myMachine.addNumber(2)
myMachine.addNumber(3)
myMachine.addNumber(2)
print(myMachine.getMax())
myMachine.removeNumber(3)
print(myMachine.getMax())
myMachine.removeNumber(2)
print(myMachine.getMax())
if __name__ == "__main__":
main()
>>> 이걸 구현해보면 (빈칸 채우기)
class maxMachine :
def __init__(self) :
self.myData = []
# __init__ : 인스턴스가 생성되자마자 바로 실행되는 함수라는 뜻
# myMachine = maxMachine() 인스턴스가 생기자마자 myMachine.__init__() 함수가 실행됨
# self : 인자가 X, 인스턴스에 대한 함수라는 뜻. 인스턴스 내에서 실행되는 함수다
# self.myData : 인스턴스에다가 myData라는 빈 리스트를 만들어. 숫자를 저장해야할 주머니가 필요하니까
def addNumber(self, n) :
self.myData.append(n)
# addNumber(self, n) : 인스턴스 안에 숫자 n을 추가
# self.myData.append(n) : myData 리스트 맨 끝에 n 추가
def removeNumber(self, n) :
self.myData.remove(n)
# removeNumber(self, n) : 인스턴스 안에 있는 숫자 n을 빼라
# self.myData.remove(n) : myData 리스트의 n 원소 제거
def getMax(self) : 인스턴스 안에 있는 모든 숫자들 중에서 가장 큰 수를 반환
return max(self.myData)
# getMax(self) : 인스턴스 안에서 가장 큰 숫자는?
# return max(self.myData) : myData 리스트의 가장 큰 수를 반환
def main():
myMachine = maxMachine()
'''
테스트를 하고싶으면, 아래 부분을 수정합니다.
'''
myMachine.addNumber(1)
myMachine.addNumber(2)
myMachine.addNumber(3)
myMachine.addNumber(2)
print(myMachine.getMax()) # 3
myMachine.removeNumber(3)
print(myMachine.getMax()) # 2
myMachine.removeNumber(2)
print(myMachine.getMax()) # 2 | 2가 두개였어서 남아있던 2가 나옴
if __name__ == "__main__":
main()
728x90
반응형
'자료구조' 카테고리의 다른 글
자료구조 - 배열 문제 : 중복된 수 제거하기 (0) | 2021.06.14 |
---|---|
자료구조 - 배열 문제 : 중복된 하나의 숫자 찾아내기 (0) | 2021.06.14 |
자료구조 - 배열 문제 : 가장 큰 두 수의 차 (0) | 2021.06.14 |
자료구조 - 시간복잡도와 공간복잡도 (0) | 2021.06.14 |
자료구조 - 객체 문제 : 자동차 객체 (0) | 2021.06.13 |
자료구조 - 배열 문제 : 두 수의 합 (0) | 2021.06.13 |
자료구조 - 자료구조와 알고리즘 개념 (0) | 2021.06.13 |
댓글