[TIL] 23.02.06

문종현·2023년 2월 6일
0

TIL

목록 보기
79/119
post-custom-banner

👉 오늘 한 일

  • 프로그래머스 문제풀이(level 0)
  • 책 집필 스터디

프로그래머스 문제풀이

1. 영어가 싫어요

  • 정답률 78%
  • 문자열을 돌면서 숫자에 해당하는 문자가 완성되면 딕셔너리에서 해당 수를 가져옴
def solution(numbers):
    result = []
    num = ""
    num_dict = {"one" : 1, "two" : 2, "three" : 3, "four" : 4,
                "five": 5, "six" : 6, "seven" : 7, "eight" : 8,
                "nine" : 9, "zero" : 0}
    
    for s in numbers:
        num += s
        for n in num_dict:
            if num == n:
                result.append(str(num_dict[n]))
                num = ""
    
    return int(''.join(result))
  • 다른 사람 풀이
    • 딕셔너리의 키를 돌면서 replace 해주면 내 코드보다 훨씬 깔끔하게 구현할 수 있다!
def solution(numbers):
    r = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4',\
         'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'}
    for k in r.keys():
        numbers = numbers.replace(k, r[k])

    return int(numbers)

2. 잘라서 배열로 저장하기

  • 정답률 78%
  • 문자열의 길이를 n으로 나눈 것에 올림한 수만큼 반복. 슬라이싱을 통해 n만큼 가져오며 슬라이싱은 초과하는 부분이 생겨도 에러가 나지 않고 나머지만 잘라서 가져옴
import math
def solution(my_str, n):
    result = []
    i = 0
    for _ in range(math.ceil(len(my_str)/n)):
        result.append(my_str[i:i+n])
        i += n
    
    return result
  • 다른 사람 풀이
    • range를 n만큼 자르면 쉽게 풀 수 있다!
def solution(my_str, n):
    return [my_str[i: i + n] for i in range(0, len(my_str), n)]
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글