생각보다 코딩테스트를 볼 때 문자열 구현 문제가 많이 나온다..(아마 금융권 시험이었던 것 같기도 하다..)
1. (프로그래머스) 신규 아이디 추천
https://programmers.co.kr/learn/courses/30/lessons/72410
regex 모듈 사용하기 (참고)
더보기
reference : https://ihp001.tistory.com/142
예제
1
2
3
4
5
6
7
8
|
import re
def regular_expression(input_string):
string = input_string.lower()
string = string .lstrip()
string = string .rstrip()
string = re.sub(r'_+', '_', string )
string= re.sub("(?i)([aeiou])", '', string)
return string
|
cs |
re.sub는 특정 문자를 삭제할 때 사용한다.
re.sub(r'_+', '_', string) : string에서 "_"반복되는 패턴을 "_"으로 대체하는 것이다. 중복을 제거할 때 유용하다.
re.sub("(?i)[aeiou])", '', string) : string에서 a, e, i, o, u 문자를 제거하는 것이다. for문 또는 if-elif를 사용하지 않아도 된다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import re def solution(new_id): # 1 new_id = new_id.lower() # 2 new_id = re.sub('[^a-z0-9-_\.]', '', new_id) # 3 new_id = re.sub('\.+', '.', new_id) # 4 new_id = new_id.strip('.') # 5 if new_id == '': new_id = 'a' # 6 if len(new_id) > 15: new_id = new_id[:15] if new_id[-1] == '.': new_id = new_id.rstrip('.') # 7 while len(new_id) < 3: new_id = new_id + new_id[-1] result = new_id return result | cs |
2. (백준) 괄호
https://www.acmicpc.net/problem/9012
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
N = int(input())
arr = []
for i in range(N):
arr.append(list(input()))
for i in range(N):
result=0
for j in range(len(arr[i])):
if arr[i][j]=='(':
result+=1
elif arr[i][j]==')':
result-=1
if result<0:
print("NO")
break
if result==0:
print("YES")
elif result>0:
print("NO")
|
cs |
1. 괄호의 짝이 맞아야하고, 첫 시작은 (, 끝은 )로 끝나야 함. 이 조건만 만족하면 YES.
'python, pyTorch > 코딩테스트-파이썬' 카테고리의 다른 글
프로그래머스 Lv1. 다트게임 (0) | 2022.02.12 |
---|---|
프로그래머스 Lv2. 주차 요금 계산 (0) | 2022.02.04 |
BOJ 결혼식, 계단오르기 (0) | 2022.02.02 |
DFS BFS 모음 (BOJ 1260, 11725, 2667) (0) | 2022.01.08 |
BOJ 3273 두 수의 합 (0) | 2021.12.14 |