34일차 문제

양진혁·2021년 12월 4일
0

문제풀이

첫번째 문제는

dig_pow(89, 1) should return 1 since 8¹ + 9² = 89 = 89 1
dig_pow(92, 1) should return -1 since there is no k such as 9¹ + 2² equals 92
k
dig_pow(695, 2) should return 2 since 6² + 9³ + 5⁴= 1390 = 695 2
dig_pow(46288, 3) should return 51 since 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288
51

def dig_pow(n,p):
  num = str(n)
  t = sum([int(num[i]) ** (p + i) for i in range(len(num))])
  if t%n == 0:
    return t/n
  else:
    return -1

n을 문자열로 바꾼 후 그 길이만큼 반복문을 작성한다. 그 다음 숫자 n의 i번째 인덱스와 p+i만큼 제곱해준 후 다 더해주고 만약 t가 n으로 나누어 떨어진다면 그 나누어 떨어지는 몫을 아니면 -1을 리턴했다.

두번째는
A pangram is a sentence that contains every single letter of the alphabet at least once. For example, the sentence "The quick brown fox jumps over the lazy dog" is a pangram, because it uses the letters A-Z at least once (case is irrelevant).

Given a string, detect whether or not it is a pangram. Return True if it is, False if not. Ignore numbers and punctuation.

즉 주어진 문장에 알파벳이 다 들어가면 True를 아니면 False를 출력한다.

def is_pangram(s):
    el = []
    s = s.lower()
    for i in s:
      if i.isalpha():
        if i not in el:
          el.append(i)
    return len(el) == 26

반복문을 통해서 만약 i가 알파벳이고 el에 i가 없을 경우 i를 추가한다. 그리고 그 리스트의 길이가 알파벳 갯수와 같으면 True 아니면 False를 출력한다.

0개의 댓글