본문 바로가기

Algorithm 💡/String12

[프로그래머스] 숨어있는 숫자의 덧셈(2) def solution(my_string): answer = 0 num_list = ("0","1","2","3","4","5","6","7","8","9") temp_str = '' for value in my_string: if value in num_list: temp_str += value else: if temp_str != '': answer += int(temp_str) temp_str = '' if temp_str != '': answer += int(temp_str) return answer 이번 문제는 주어진 문자열에서 정수 값만 골라서 더해준 값을 구하는 문제이다. temp_str 이라는 임의의 문자열을 선언한 뒤에 주어진 문자열을 순회하면서 해당 문자가 숫자인 경우에만 붙여주고, 자.. 2023. 7. 20.
[프로그래머스] OX퀴즈 def solution(quiz): answer = [] for i in quiz: data = i.split() result = int(data[-1]) formula = ''.join(data[:-2]) if eval(formula) == result: answer.append("O") else: answer.append("X") return answer 이번 문제는 주어진 수식들을 계산한 결과가 맞았을 경우에는 O, 틀렸을 경우에는 X를 반환할 수 있도록 하는 문제이다. 수식의 각 항들을 공백 기준으로 리스트에 저장한 뒤에 결과 값과 계산식의 결과를 비교하여 문제를 풀이하였다 :) 2023. 7. 20.
[프로그래머스] 문자열 계산하기 def solution(my_string): data = my_string.split() # ['3', '+', '4'] answer = int(data[0]) for i in range(1,len(data)-1,2): if data[i] == '+': answer += int(data[i+1]) else: answer -= int(data[i+1]) return answer 이번 문제는 주어진 수식 문자열을 계산하여 결과를 리턴하는 문제이다. 처음에는 문자열을 모두 순회하며 + 인지 - 인지 저장해가며 풀었는데, 테스트케이스에서 실패하여 연산자를 기준으로 값을 처리했더니 통과할 수 있었다. eval 함수 : 매개변수로 받은 expression(우리가 아는 일반적인 사칙연산 '식')을 문자열로 받아서 실.. 2023. 7. 20.
[프로그래머스] 옹알이(1) def solution(babbling): answer = 0 available = ('aya','ye','woo','ma') available_prefix = ('a','y','w','m') def checkFunc(arr): arr_length = len(arr) i = 0 while(i 2023. 7. 18.
[HackerRank] Caesar Cipher def caesarCipher(s, k): # Write your code here length = len(s) str_list = list(s) k %= 26 for i in range(length): char_ord = ord(str_list[i]) if char_ord >= ord('A') and char_ord ord('Z'): diff = ord('Z') - char_ord index = (ord('A')-1) + (k-diff) str_list[i] = chr(index) else: str_list[i] = chr(char_ord+k) elif char_ord >= ord('a') and char_ord ord('z'): diff = ord('z') - char_ord index = (ord(.. 2023. 5. 19.
[HackerRank] Two Characters def alternate(s): # Write your code here result_list = [] def gen_comb(arr,n): result = [] if n == 0: return [[]] for i in range(len(arr)): element = arr[i] rest_arr = arr[i+1:] for c in gen_comb(rest_arr,n-1): result.append([element]+c) return result def validate(arr): length = len(arr) if length >=2: first, second = arr[0],arr[1] for j in range(length): if j%2 == 0 and arr[j] != first: return .. 2023. 5. 19.