Algorithm/String 12

[소프티어 7703번] X marks the Spot (한양대 HCPC 2023)

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sys# 1. n개의 문자열쌍(S,T)이 주어지는데, 각 쌍에 대해서 S와 T의 길이는 같다# 2. S에서 글자 x 또는 X가 등장하는 위치를 P라고 한다.(유일)# 3. 이때 T의 P번째 글자를 읽는다.(소문자는 대문자로 변환)input = sys.stdin.readlineN = int(input())answer = []for _ in range(N): str1, str2 = input().split() str1_set, str2_set = set(str1), set(str2) x_index = -1 X_index = -1 if 'x' in str1_set: x_index = str1..

Algorithm/String 2024.06.16

[프로그래머스] JadenCase 문자열 만들기

def solution(s): words = s.split() blanks = [] for i,value in enumerate(s): if value == ' ': # 공백문자인 경우 if i == 0: # 첫번째 문자인 경우(index error 방지) blanks.append(' ') else: if s[i-1] == ' ': # 연속된 공백문자일 경우 blanks[-1] += ' ' else: blanks.append(' ') def convertWord(string): # JadenCase로 문자열 변환해주는 함수 result = '' for i,value in enumerate(string): if i == 0: if ord('a')

Algorithm/String 2024.01.05

[백준 5052번] 전화번호 목록

5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net import sys input = sys.stdin.readline t = int(input().rstrip()) for _ in range(t): n = int(input().rstrip()) cases = [] flag = True for _ in range(n): cases.append(input().rstrip()) cases.sort() # for i in range(len(cases)): # if flag: # break # f..

Algorithm/String 2023.12.13

[프로그래머스] 문자열 밀기

def solution(A, B): def move(string): list_str = list(string) str_len = len(list_str) new_list = [list_str[-1]] + list_str[:-1] print(new_list) return ''.join(new_list) available = False check_str = A answer = 0 for i in range(len(A)): if check_str == B: available = True break check_str = move(check_str) answer += 1 if available: return answer else: return -1 이번 문제는 주어진 문자열 A를 오른쪽으로 밀면서 B를 만들 수 ..

Algorithm/String 2023.07.21

[프로그래머스] 숨어있는 숫자의 덧셈(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 이라는 임의의 문자열을 선언한 뒤에 주어진 문자열을 순회하면서 해당 문자가 숫자인 경우에만 붙여주고, 자..

Algorithm/String 2023.07.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를 반환할 수 있도록 하는 문제이다. 수식의 각 항들을 공백 기준으로 리스트에 저장한 뒤에 결과 값과 계산식의 결과를 비교하여 문제를 풀이하였다 :)

Algorithm/String 2023.07.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(우리가 아는 일반적인 사칙연산 '식')을 문자열로 받아서 실..

Algorithm/String 2023.07.20