코테 준비 | 프로그래머스 하샤드 수 / 두 정수 사이의 합 (리스트 컴프리헨션 & range)

2024. 12. 18. 18:25·PYTHON

☑️하샤드 수 

[문제]

  • 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

[문제 해결1 - for & if 문]

  • for문 :  x의 각 자리수의 합 구한 뒤 
  • if 문 : x에 나눈 나머지가 0일때 True, 아니면 False 
def solution(x):
    sum = 0 # 각자리수 합
    for i in str(x):
        sum += int(i) # 숫자로 변환해서 연산
    if x%sum == 0:
        answer=True
    else:
        answer=False
    return answer

 

[문제 해결- 리스트 컴프리헨션]

  • x의 각자리수의 합 : sum(int(i) for i in str(x))
  • x의 각자리수의 합을 x로 나눈 나머지가 0 인 조건 충족시 True/ 아닐경우 False 반환 :  x%sum(int(i) for i in str(x)) == 0
def solution(x):
    return x%sum(int(i) for i in str(x)) == 0
[Point]
✔️ return 은 조건식(boolean 타입) 도 받을 수 있음. 
✔️ for 문 값의 합은 내장함수 sum 으로 사용 가능 

☑️두 정수 사이의 합 

[문제]

  • 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.

[문제 해결1 - for & if 문]

  • if  조건문 : a,b는 대소관계가 없으므로 조건별 값 구하기  
    • a<b  : for 문 range(a,b+1) 돌려서 누적합 구하기 
    • a<b  : for 문 range(b,a+1) 돌려서 누적합 구하기 
    • a=b : a or  b 값 반환 
def solution(a, b):
    answer = 0
    if a<b:
        for i in range(a,b+1): #sum(i for i in range(a,b+1))
            answer += i
    elif a>b:
        for i in range(b,a+1):
            answer += i
    else:
        answer = a
    return answer

 

[문제 해결2 - range& sum  or 조건 최적화 ]   

  • Sum(range()) 로 매개변수a,b 사이 값 구할 수 있음
  • (조건 최적화+)  : 조건당 수행문 `sum(range())` 이 유사함 최적화 하기 
    •  문제가 되는 a>b때 a,b의 값을 서로 바꿔줌 
    • 그리고 수행문 `sum(range(a,b+1))`  출력 
#방법1 : sum(range()) 이용하여 a,b의 합 구하기 
def solution(a, b):
    answer = 0
    if a<b:
        answer = sum(range(a,b+1))  
    elif a>b:
        answer = sum(range(b,a+1))
    else:
        answer = a
    return answer
    
#방법 2 : a>b 조건일때 a,b 값 변경 해주어 최적화
if a > b: # a가 크면
    a, b = b, a # 두 변수 값을 바꿔서
return sum(range(a, b + 1)) # 연산해줌

 

[Point]
✔️ sum(range()) 로  두수사이의 합을 간단하게 구할 수 있음
✔️ 수행문이 유사할 경우 최적화 할수있는 방법 생각 해볼것! 
✔️return 하단으로 빼주기 

'PYTHON' 카테고리의 다른 글

데이터 시각화 | Matplotlib 기본 of 기본 문법  (2) 2024.12.19
데이터 전처리 실습 | Pandas 결측치 / 중복값 / 이상치 처리/minmax 정규화  (0) 2024.12.18
데이터 전처리 | Pandas 기본 함수 3 (concat,merge,groupby,pivot_table,sort_value)  (1) 2024.12.17
데이터 전처리| Pandas 기본 함수2 (loc, iloc,isin)  (0) 2024.12.17
데이터 전처리 | Pandas 기본 함수 1  (2) 2024.12.17
'PYTHON' 카테고리의 다른 글
  • 데이터 시각화 | Matplotlib 기본 of 기본 문법
  • 데이터 전처리 실습 | Pandas 결측치 / 중복값 / 이상치 처리/minmax 정규화
  • 데이터 전처리 | Pandas 기본 함수 3 (concat,merge,groupby,pivot_table,sort_value)
  • 데이터 전처리| Pandas 기본 함수2 (loc, iloc,isin)
성장하는 쿠키의 로그 기록
성장하는 쿠키의 로그 기록
성장하는 쿠키의 모든 로그를 담습니다.
  • 성장하는 쿠키의 로그 기록
    쿠키 로그
    성장하는 쿠키의 로그 기록
  • 전체
    오늘
    어제
    • 분류 전체보기 (143) N
      • TODAY I LEARNED (2) N
      • 데이터 분석 (13)
      • SQL (49)
      • PYTHON (39)
      • 통계,검정,머신러닝 (22)
      • TABLEAU (5)
      • 내배캠 | 데이터분석 부트캠프 (12)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터리안
    pandas
    태블로
    내배캠
    데이터분석
    해커랭크
    프로그래머스
    SQL
    머신러닝
    코테준비
    티스토리챌린지
    sql코딩테스트
    코딩테스트준비
    데이터분석프로젝트
    MySQL
    Wil
    데이터분석가
    오블완
    Python
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
성장하는 쿠키의 로그 기록
코테 준비 | 프로그래머스 하샤드 수 / 두 정수 사이의 합 (리스트 컴프리헨션 & range)
상단으로

티스토리툴바