Today I Learned

(3) 프로그래머스 코딩테스트 Lv1 - 파이썬

by Holly Yoon

9. 문자열을 정수로 바꾸기 (문제 링크)

  • 문제 설명 : 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
  • 제한 조건 : a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. / a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. / a와 b의 대소관계는 정해져있지 않습니다.
    #나의 풀이
    def solution(a, b):
        if a == b : 
            return a
        else : 
            avg = (a+b)/2
            return avg*(abs(b-a)+1)
            
    #타인의 풀이
    def adder(a, b):
        if a > b: 
        	a, b = b, a
        return sum(range(a,b+1))
     
  • 나는 abs()를 사용하여 a,b의 평균 x 전체 갯수를 구해주었는데..
  • a,b 대소 비교하고 range, sum을 쓰는 방법도 있었다.

 

10. 정수 내림차순으로 배치하기 (문제 링크)

  • 문제 설명 : 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
  • 제한 조건 : n은 1이상 8000000000 이하인 자연수입니다.
  • 입출력 예 
    118372 873211
#풀이1
def solution(n):
    answer = ''.join(sorted(str(n), reverse=True))
    answer = int(answer)
    return answer


#풀이2
def solution(n):
    ls = list(str(n))
    ls.sort(reverse = True)
    return int("".join(ls))
  1. 문자열을 합치는 join : '구분자'.join(리스트) 로 사용하며 리스트 요소 하나하나를 합쳐 문자열로 바꾸는 반환함수
  2. sorted와 sort의 차이 : sorted 함수는 정렬된 새로운 리스트를 반환해줍니다. 반면, sort메소드는 기존 리스트 자체를 재정렬 시킨다. 더 자세한 내용

 

11. 하샤드 수 (문제 링크)

  • 문제 설명 : 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
  • 제한 조건 : x는 1 이상, 10000 이하인 정수입니다.
  • 입출력
    10 true
    12 true
    11 false
    13 false
#내 풀이
def solution(x):
    result = list(map(int,str(x)))
    xsum = sum(result)   
    return bool(x%xsum == 0)

#타인의 풀이
def Harshad(n):
    return n % sum([int(c) for c in str(n)]) == 0

 

12. 나머지가 1되는 숫자 찾기 (문제 링크)

  • 문제 설명 : 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
  • 제한사항 : 3 ≤ n ≤ 1,000,000
  • 입출력 예
    10 3
    12 11
def solution(n):
    a = []
    for i in range(1,n):
        if n%i == 1:
            a.append(i)
    answer = a[0]
    return answer

 

블로그의 정보

Study Log by Holly

Holly Yoon

활동하기