STUDY/Python

프로그래머스 코딩테스트 입문 파이썬 lv.0 (4)

둥둥런 2023. 2. 3. 15:22

자릿수 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/120906

  • 리스트 컴프리헨션
  • map(int, list)
def solution(n):
    return sum(map(int,[x for x in str(n)]))

 

중앙값 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120811

  • .sort(): "리스트형의 메소드"이며, 리스트 원본 값 자체를 변경, 값을 반환하지 않고 정렬만 변경해주는 것
  • sorted(리스트): "내장 함수"이며, 리스트 원본 값을 유지한 채 정렬 값을 반환한다.
def solution(array):
    n = len(array)//2
    array.sort()
    return array[n]
# 더 간단한 다른 풀이
def solution(array):
    return sorted(array)[len(array) // 2]

 

문자열안에문자열
https://school.programmers.co.kr/learn/courses/30/lessons/120908

in 연산자의 결과는 bool 타입이며 확인하고자 하는 데이터가 있는 경우 True, 없는 경우 False를 반환합니다.
반대로 not in 연산자는확인하고자 하는 데이터가 있으면 False, 없으면 True를 반환합니다.
for + in은 하나씩 요소 빼오는 데 사용

삼항연산자
1 if True else 2

def solution(str1, str2):
    return 1 if str2 in str1 else 2

 

옷가게 할인 받기
https://school.programmers.co.kr/learn/courses/30/lessons/120818

  • 이상인 것 잘 보기
  • import math, math.floor 버림 활용 <-> 올림은 ceil
  • 반올림인 경우엔 그냥 round()사용 가능
  • 그냥 int(price)로 해도 정답... 분명 실패해서 재시도한건데 이상하다;;
import math
def solution(price):
    if price >= 500000:
        price = price * 0.8
    elif price >= 300000:
        price = price * 0.9
    elif price >= 100000:
        price = price * 0.95
    return math.floor(price)

 

모음 제거
https://school.programmers.co.kr/learn/courses/30/lessons/120849

  • my_string 문자열에서 모음 제거한 새로운 리스트 : check
  • check안에 있는 문자만 순서대로 answer 리스트에 담기
  • join으로 리스트를 하나의 str으로 결합
def solution(my_string):
    vowel = ['a','e','i','o','u']
    check = list(set(my_string) - set(vowel))

    answer = []
    for x in my_string:
        if x in check:
            answer.append(x)
    return ''.join(answer)

 

숨어있는 숫자의 덧셈 (1)
https://school.programmers.co.kr/learn/courses/30/lessons/120851

  • re(정규표현식, regex) 활용한 풀이
import re

def solution(my_string):
	# 숫자만 찾아서 더하기
    return sum(map(int,re.findall('[0-9]', my_string)))