Category/빅데이터&파이썬

프로그래머스 알고리즘(하샤드 수, 문자열을 정수로 바꾸기, 콜라츠 추측, 서울에서 김서방 찾기, 나누어 떨어지는 숫자 배열)

sumin 2023. 4. 2. 21:53
728x90
반응형

매일 알고리즘 5문제씩 푸는 것으로 계획을 변경했다.

 

1. 하샤드 수

 

작성 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
def solution(x):
    arr = list(str(x))
    sum_ = 0
    
    for i in range(len(arr)):
        sum_ += int(arr[i])
        if x % sum_ == 0:
            answer = True
        else:
            answer = False    
    
    return answer
cs

 

정리

int값을 list 처리하기 위해서 str(x)로 변환

x를 sum_으로 나눴을때 나머지가 0 -> 하샤드수

 

 

2. 문자열을 정수로 바꾸기

 

작성 코드

1
2
def solution(s):
    return int(s)
cs

 

3. 콜라츠 추측

 

 

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(num):
    answer = 0
    
    while num != 1 :
        if answer > 500 :
            return -1
        if num % 2 == 0 :
            num = num/2
            answer += 1
        elif num % 2 == 1 :
            num = num*3 + 1
            answer += 1
    return answer
cs

 

4. 서울에서 김서방 찾기

 

작성 코드

1
2
3
4
5
6
7
def solution(seoul):
    answer = ''
    a = 0
    for i in range(len(seoul)):
        if seoul[i] == 'Kim':
            a = i
    return ('김서방은 %d에 있다'%a)
cs

 

5. 나누어 떨어지는 숫자 배열

 

 

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
def solution(arr, divisor):
    answer = []
    arr.sort()
    
    for i in range(len(arr)):
        if arr[i] % divisor == 0:
            answer.append(arr[i])
    if len(answer) ==0:
        answer.append(-1)
  
    return answer
 
cs
728x90
반응형