프로그래머스 lv0 문자열계산하기, 잘라서배열로저장하기, 영어가싫어요, 공던지기
1. 개요
- https://school.programmers.co.kr/learn/courses/30/lessons/120902
- https://school.programmers.co.kr/learn/courses/30/lessons/120913
- https://school.programmers.co.kr/learn/courses/30/lessons/120894
- https://school.programmers.co.kr/learn/courses/30/lessons/120843
2. 문자열계산하기 풀이
from collections import deque
# answer를 정해 갱신해 나간다.
def solution(my_string):
args = deque(my_string.split(" "))
answer = int(args[0])
args.popleft()
while args:
operator = args.popleft()
if operator == "+":
answer += int(args.popleft())
else:
answer -= int(args.popleft())
return answer
# " - " 를 " + -"로 바꿔 음수와의 덧셈으로 전환한다.
# 이제 " + " 기준으로 split() 해주면 쉽게 sum을 통해 답을 구할수 있다.
def solution(my_string):
return sum(int(i) for i in my_string.replace(' - ', ' + -').split(' + '))
3. 잘라서배열로저장하기 풀이
import re
# 정규식으로 풀수 있다.
def solution(my_str, n):
return re.findall("\S{" + str(1) + "," + str(n) + "}", my_str)
# 인덱싱과, 슬라이싱을 통해 구할수 있다.
def solution(my_str, n):
return [my_str[i: i + n] for i in range(0, len(my_str), n)]
4. 영어가싫어요 풀이
import re
# REGEX를 사용하여 풀수 있다.
def solution(numbers):
DB = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4",
"five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
REGEX = "zero|one|two|three|four|five|six|seven|eight|nine"
return int("".join(DB[num] for num in re.findall(REGEX, numbers)))
# replace를 통해 교체해 나간다.
def solution(numbers):
for num, eng in enumerate(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]):
numbers = numbers.replace(eng, str(num))
return int(numbers)
5. 공던지기 풀이
def solution(numbers, k):
# 0 1 2 3 0 1 2 3
# 0 1 2 3 4 5 6 7
# 1씩빼서 0부터시작하면 나누기연산을 하기 편리하다.
return 2*(k-1) % (len(numbers)) + 1
Leave a comment