[프로그래머스] 파이썬 코딩테스트 연습 LV1(서울에서 김서방 찾기, 나누어 떨어지는 숫자 배열)

728x90

1. 서울에서 김서방 찾기


문제 설명


String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

제한 사항


seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.

 

def solution(seoul):
    for i in range(len((seoul))):
        if seoul[i] == 'Kim':
            return f"김서방은 {i}에 있다"

f - string 잘 몰라서 귀찮아도 그냥

"김서방은 " + str(i) + "에 있다"

이런식으로 했는데 엄청 쉽고 간편한 거였다.. 

 

다른 사람 풀이

def findKim(seoul):
    
    return "김서방은 {}에 있다".format(seoul.index('Kim'))

ㄷ ㄷ

 

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


문제 설명


array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한사항


arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.

 

내 풀이

def solution(arr, divisor):
    answer = []
    for i in arr :
        if i % divisor == 0 :
            answer.append(i)
    
    if len(answer) == 0 :
        answer.append(-1)    
    
    answer.sort()
    
    return answer

 

다른 사람 풀이

def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]

or 앞이 참일경우 해당 값까지만 , 거짓일경우 뒤에 것까지 호출

728x90