전체 글628 [프로그래머스] 하샤드 수 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 내풀이 (성공) def solution(x): answer = True sum_x = 0 for i in str(x): sum_x += int(i) if x % sum_x != 0: answer = False return answer 다른방법 1 def Harshad(n): # n은 하샤드 수 인가요? return n % sum([int(c) for c in str(n)]) == 0 # 아래는 테스트로 출력해 보기 위한 코드입니다. p.. 2022. 4. 29. 파이썬 __ slots __ 파이썬 __ slots __ 클래스를 사용해보았다면 __dict__을 통해서 클래스의 인스턴스가 가진 모든 속성을 확인해본적이 있을 것이다. 딕셔너리는 메모리를 많이 잡아먹는 단점이 있는데, 만약 수 백만개의 인스턴스를 생성한다면 그 만큼 사용되는 메모리가 매우 크게 증가한다는 것을 의미한다. 클래스가 가지는 속성을 제한함으로써 최적화를 할 수 있으며 이 때 필요한 __slot__이라는 키워드에 대해서 정리해보자. slots 이란? slots은 클래스가 가진 속성을 제한할때 사용한다. 클래스의 dict 속성을 최적화하는 데에 사용할 수 있는데 기존의 딕셔너리로 관리하는 속성을 집합 형태의 Set으로 바꿈으로써 동작한다. 메모리를 절약할 수 있다는 장점이 있다. ( __slots__은 객체마다 생성되는 _.. 2022. 4. 28. [프로그래머스] 평균 구하기 코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr 내풀이 (성공) def solution(arr): return sum(arr) / len(arr) 다른방법 1 from functools import reduce def average(list): # 함수를 완성해서 매개변수 list의 평균값을 return하도록 만들어 보세요. return reduce(lambda x, y : x + y, list) / len(list) # 아래는 테스트로 출력해 보기.. 2022. 4. 28. [프로그래머스] 콜라츠 추측 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 내풀이 (성공) def check_even(num): if num % 2 == 0: num = num // 2 else: num = (num * 3) + 1 return num def solution(num): if num == 1: return 0 else: for i in range(501): num = check_even(num) if num == 1: return i + 1 if i == 500: return -1 다른방법 .. 2022. 4. 27. [프로그래머스] 최대공약수와 최소공배수 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 내풀이 (성공) def solution(n, m): answer = [] # GCD for i in range(min(n, m), 0, -1): if n % i == 0 and m % i == 0: answer.append(i) break # LCM for j in range(max(n, m), (n * m) + 1): if j % n == 0 and j % m == 0: answer.append(j) break return an.. 2022. 4. 26. 파이썬 property(), @property 파이썬에 내장되어 있는 property() 함수와 @property 데코레이터에 대해서 알아보겠습니다. 필드명 사람의 이름, 성, 나이 데이터를 담기 위한 간단한 클래스를 하나 작성해보겠습니다. 아래 Person 클래스는 이름 first_name, last_name, age 이렇게 3개의 필드로 이루어져 있습니다. class Person: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.age = age Person 클래스의 인스턴스를 생성 후에, 현재 필드 값을 읽거나 새로운 필드 값 쓰는 것은 매우 자유롭습니다. >>> person = Person("Joh.. 2022. 4. 25. 이전 1 ··· 62 63 64 65 66 67 68 ··· 105 다음