본문 바로가기

Python37

[Python] 수식 최대화 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 풀이 우선 정규표현식을 사용하여 숫자와 연산자를 분리하고 사용된 연산자를 구하였습니다. 다음으로 사용된 연산자에 대해 만들 수 있는 모든 우선순위의 경우들을 순열을 사용하여 만들었습니다. 그다음 만들어둔 숫자와 연산자가 담긴 리스트를 복사해서 우선순위대로 계산을 하여 절댓값을 했을 때 최대인 값을 선택하게 하여 해결했습니다. 코드 import re from itertools import permutations def solution(expression): an.. 2021. 3. 28.
[Python] 튜플 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 풀이 문제를 잘 보면 모든 집합에서 각 숫자를 카운트해보면 가장 많이 나온 숫자가 튜플에서 맨 첫 번째의 원소가 되고 두 번째로 많이 나온 숫자가 튜플에서 두 번째 원소가 됩니다 이를 이용해서 문자열을 처리하고 딕셔너리를 사용하여 해결했습니다. 이때, 문자로만 처리했기때문에 마지막에 map함수를 사용해서 정수형으로 바꾸어주어야 하고 카운트한 숫자가 높은 순 이므로 내림차순 정렬을 해야 합니다. 코드 def so.. 2021. 3. 27.
[Python] 순위 검색 0: st = bisect_left(scores, q_score) answer.append(len(conditions_dict[q_condition]) - st) else: answer.append(0) return answer pyo7410/Algorithm 1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub. github.com 2021. 3. 21.
[Python] 괄호 변환 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 풀이 문제에서 주어진 조건대로 재귀함수를 작성하여 해결했습니다. 코드 def solution(p): answer = '' if is_proper(p): return p answer = go(p) return answer def go(p): if p == "": return p u, v = split_bracket(p) # print(u, v) if is_proper(u): u += go(v) return u else: s = "(" s += go(v) s += ".. 2021. 3. 21.
[Python] 메뉴 리뉴얼 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 각 order별 길이가 cnt인 만들 수 있는 조합을 전부 만들고 가장 많이 만들어진 조합을 구해 해결했습니다. 이때, 조합이 만들어진 최대 개수가 1이라면 문제의 조건에따라 제외해야합니다. orders의 안에있는 메뉴들의 순서를 알파벳으로 정렬해야 해결이 됬습니다. 코드 from itertools import combinations def solution(orders, course): answer = [] # orders 리스트 안의 내용들을 각각 알파벳 .. 2021. 3. 15.
[Python] 정규표현식 (계속 추가예정) 사용하고자하는 정규표현식을 문자열에 미리저장해서 complie()에 사용이 가능! import re # .은 어떤 문자열도 상관없다는 의미 # *은 몇 개가 와도 상관없다는 의미 # ., *을 따로따로 적용이 가능 s = ".*X.*Y.*" p = re.compile(s) m = p.match("asdaXWYgsdg") if m: print("ㅇㅇ") else: print("ㄴㄴ") # 결과 # ㅇㅇ re.findall을 사용하여 정규표현식에 해당하는 모든 값을 찾을 수 있다. import re # \D+는 숫자가 아닌 문자로 반복되는 모든 문자를 의미 # 반대로 \d+는 숫자인 문자로 반복되는 모든 문자 # 문자열이 아닌 변수가 올 수 있다. find_list = re.findall('\D+', "th.. 2021. 3. 14.