All
-
[Programmers] 문자열 다루기 기본programing/Algorithm 2021. 1. 2. 17:28
문자열 다루기 기본 연습 문제 level 1 Python3 import re def solution(s): p = re.compile('^(\d{4}|\d{6})$') return p.search(s) is not None 정규표현식을 이용한 풀이입니다. 파이선 패턴 클래스의 메소드에는 결과값이 boolean인 메소드가 없어, 논리 연산을 해줘야 합니다. (물론 Match 객체는 True로 판단되기는 하지만..) def solution(s): return s.isdigit() and len(s) in (4, 6) 혹은 정규표현식 대신 위와 같이 풀 수도 있습니다. 그나저나 len(s) in (4, 6) 이라니, 파이썬은 보면 볼수록 자연어에 가까운 느낌이 드네요.
-
[Programmers] 문자열 내 p와 y의 개수programing/Algorithm 2021. 1. 2. 15:13
문자열 내 p와 y의 개수 연습 문제 level 1 python3 import re def solution(s): pattern_p = re.compile('[pP]{1}') result_p = pattern_p.findall(s) pattern_y = re.compile('[yY]{1}') result_y = pattern_y.findall(s) return len(result_p) == len(result_y) 정규표현식을 이용한 풀이. def solution(s): return s.lower().count('p') == s.lower().count('y') 혹은 그냥 lower case로 변경한 뒤, count 함수를 이용해 개수를 세어도 된다.
-
[Programmers] 문자열 내 마음대로 정렬하기programing/Algorithm 2021. 1. 1. 21:56
문자열 내 마음대로 정렬하기 연습 문제 level 1 python3 def solution(strings, n): strings.sort() answer=sorted(strings, key=lambda string: string[n]) return answer JS의 sort함수와 비슷하게, 파이썬도 비교 연산을 지정할 수 있다. 다만 람다 특유의 문법때문에, 파이썬에 미숙한 나로써는 100% 활용하기 어려운 듯.. 단순히 key만 주는 걸로는 "abcd"와 "abce" 처럼 인덱스의 문자가 같은 두 문자열을 제대로 비교할 수 없다. 그래서 sort()를 한번 실행해 줘야 한다. (순서는 상관 없다. 왜냐하면 파이썬의 sorted 함수는 안전하기 때문에..) def solution(strings, n):..
-
[Programmers] 두 정수 사이의 합programing/Algorithm 2021. 1. 1. 20:35
두 정수 사이의 합 level 1 연습문제 python3 def solution(a, b): if a == b: return a; summery = 0 if (a > b): tmp = b b = a a = tmp for num in range(a, b + 1): summery += num return summery range와 for만 잘 쓰면 되는 문제. def solution(a, b): if a > b: a, b = b, a return sum(range(a,b+1)) 파이썬에서는 tuple을 이용해 스왑을 편하게 할 수 있다. sum도 함수로 제공하고 있었다.. 😅
-
[Programmers] 나누어 떨어지는 숫자 배열programing/Algorithm 2021. 1. 1. 20:21
나누어 떨어지는 숫자 배열 연습 문제 python3 def solution(arr, divisor): answer = [] for e in arr: if e % divisor == 0: answer.append(e) if len(answer) == 0: return [-1] answer.sort(); return answer 정렬을 어떻게 해야 할까 하다가.. 그냥 내장 함수 썼는데 통과. 사실 효율성 체크가 없었기도 하고..ㅋㅋ; def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1] array comprehension을 이용하면 위와 같이 할 수 있다. 볼때마다 신기한 문법...