[프로그래머스] 짜잘한 Lv.1 문제 모음 (1) (Python)

seulzzang·2022년 9월 20일
1

코딩테스트 연습

목록 보기
12/44
post-thumbnail

토요일에 카카오코테가 있는데 기초 다질 겸 감 잃지 않게 하려고 풀어본 문제들!
짜잘짜잘한 파이썬 기본 문법들만 다룬 문제들이다. 정답률 85%가 넘는 Lv.1 문제 모음💻

1. 짝수와 홀수

[프로그래머스] Lv.1 짝수와 홀수

def solution(num):
    answer = ''
    if num % 2 == 0:
        answer = 'Even'
    else:
        answer = 'Odd'
    return answer

2. 평균 구하기

[프로그래머스] Lv.1 평균 구하기

def solution(arr):
    answer = 0
    answer = sum(arr)/len(arr)
    return answer

3. 약수의 합

[프로그래머스] Lv.1 약수의 합

def solution(n):
    result = []
    for i in range(1, n+1):
        if n % i == 0:
            result.append(i)
    answer = sum(result)
    return answer

💻다른사람 풀이

def sumDivisor(num):
    # num / 2 의 수들만 검사하면 성능 약 2배 향상
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])

어차피 약수들은 대칭이니까 ( 8 = 2*4 = 4*2 이런식으로) 절반까지만 확인해줘도 된다..
반 넘는 값들은 필요가없음!
마찬가지로 num**(0.5)+1도 동일하다. 저번에 소수찾기 문제에서 얻었던 지식..제곱근까지만 확인해주면 약수를 다 찾을 수 있다!

4. 정수 제곱근 판별

[프로그래머스] Lv.1 정수 제곱근 판별

import math
def solution(n):
    answer = 0
    if n % math.sqrt(n) == 0:
        m = math.sqrt(n)
        answer = (m+1) ** (2)
    else:
        answer = -1
    return answer

내 풀이는 해당 정수 n이 제곱근 math.sqrt(n)으로 나누어 떨어지면 math.sqrt(n)가 그 정수의 제곱근이니까 +1해서 제곱하는 값 리턴

5. 자릿수 더하기

[프로그래머스] Lv.1 자릿수 더하기

def solution(n):
    answer = 0
    new = [int(num) for num in list(str(n))]
    answer = sum(new)
    return answer

str변환해서 하나씩 넣어준걸 다시 int로 변환해서 sum하기

return sum([int(i) for i in str(number)])

이런 한 줄 풀이도 있더라.

6. 문자열 내 p와 y의 개수

[프로그래머스] Lv.1 문자열 내 p와 y의 개수

def solution(s):
    if s.lower().count('p') == s.lower().count('y'):
        return True
    else:
        return False
return s.lower().count('p') == s.lower().count('y')

걍 이렇게 한줄로도 나타낼 수 있음.

7. 정수 내림차순으로 배치하기

[프로그래머스] Lv.1 정수 내림차순으로 배치하기

def solution(n):
    answer = ''
    nums = [int(i) for i in list(str(n))]
    nums.sort(reverse = True)
    for num in nums:
        answer += str(num)
    return int(answer)

💻다른사람 풀이

def solution(n):
    ls = list(str(n))
    ls.sort(reverse = True)
    return int("".join(ls))

.join을 쓰면 코드가 훨 간결해진다..! for문을 쓸 필요가 없음.

8. x만큼 간격이 있는 n개의 숫자

[프로그래머스] Lv.1 x만큼 간격이 있는 n개의 숫자

def solution(x, n):
    answer = []
    for i in range(1, n+1):
        answer.append(i*x)
    return answer
profile
중요한 것은 꺾이지 않는 마음

0개의 댓글