Day 14 - Scope

HTML이랑 CSS 배우다가 파이썬을 다 까먹어버릴 것 같아서 급하게 쉬운 문제풀이를 하나 해보았다. 블로그도 틈틈이 업데이트 해야하는데, 마음만 급하고 진척은 크지 않다. 그러나 천릿길도 한 걸음부터, 어떤 대단한 프로그램도 한 줄의 코드부터 짜며 꾸준히 해나가보기로 한다.

문제 풀이

문제 해석

elements라는 양의 정수 모음 속 두 정수 a와 b의 절대값 중 가장 큰 것을 내놓아라.

Task

  • Difference라는 클래스를 만들되
    • 매개변수로 주어지는 값을 __elements라는 instance variable로 생성자를 통해 정의하기
    • computeDifference라는 메소드를 만들어 __elements 속 2 숫자의 차의 절대값 중 가장 큰 녀석을 내놓게 해라

Input Format

  • 친절한 HackerRank 말하길: 넌 그냥 클래스나 만들어, input은 내가 처리하여 클래스에 넣을 그룹객체로 넘겨줄게

Output Format

  • 친절한 HackerRank 또 말하길: 넌 그냥 클래스에서 메소드나 만들어, output으로 maximumDifference값은 내가 출력한다.

문제 풀이

이미 주어진 코드 해석

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Difference:
def __init__(self, a):
self.__elements = a
# Add your code here

# End of Difference class

_ = input()
a = [int(e) for e in input().split(' ')]

d = Difference(a)
d.computeDifference()

print(d.maximumDifference)
  • 오늘도 HackerRank는 친절하게 인풋 아웃풋 다 만드시고 생성자까지 준비해뒀다.
  • 내가 만드는 Difference 클래스로 d를 정의하고 computeDifference 메소드를 돌린 후 그 결과로 만들어진 instance variable인 maximumDifference를 출력하실 예정이다.

코드 작성하기

  • __elements라는 리스트는 다 양의 정수이기 때문에 가장 큰 값에서 가장 작은 값을 빼면 해결되는 간단한 문제였다.
1
2
def computeDifference(self):
self.maximumDifference = max(self.__elements)-min(self.__elements)

느낀 점

  • 처음엔 __elements 리스트 안 요소들의 차를 각각 하나씩 구해서 그 중 가장 큰 값을 리턴하려고 했는데, 아주 간단한 방법이 있는데 이렇게 하는 건 바보같은 짓이었다. 괜히 고생 사서하지 말자는 교훈을 얻었다.