반응형

프로그래머스/LEVEL 2 48

올바른 괄호

Python def solution(s): #(와 )의 개수가 맞으므로 if s[0] == ")" or s[-1] == "(" or s.count("(") != s.count(")"): return False s = s.replace("()", "")#replace하게 되면 맞는 거면 (())()이런식이므로 처음과 끝만 잘 맞는지 확인해주면 된다. if len(s) > 0 and (s[0] == ")" or s[-1] == "("): return False return True # 효율성 시간 초과 # answer = True # if s[0] == ")" or s[-1] == "(" or s.count("(") != s.count(")"): # return False # while len(s) > 0:..

2개 이하로 다른 비트

Python def solution(numbers): answer = [] for number in numbers: #0을 앞에 붙여야되는데 해당 이유에 대해서는 더 생각이 필요 start_number = "0" + bin(int(number))[2:] if start_number[-2:] in ["00", "01", "10"]: answer.append(number + 1) continue #뒤부터 검사해서 0이 나오기 시작하는 index (length - (index + 1)) index = start_number.rfind("0") count = len(start_number) - (index + 1) answer.append(number + 2 ** (count - 1)) return answer..

[3차] 방금그곡

Python - #처리를 까먹고 안 해서 시간이 오래 걸렸다. 문자열은 re를 이용하니 좀 더 수월하게 풀 수 있었다. + 다른 사람 풀이를 봤는데 C#은 소문자 c로 변경하여 풀었다. 좋은 방법인 거 같다. import datetime import re def solution(m, musicinfos): answer = [] #datetime.datetime(2022, 4, 1) for index, musicinfo in enumerate(musicinfos): start, end, title, rhythm = musicinfo.split(",") total = '' start_time = start.split(":") end_time = end.split(":") #시간 구하는 다른 방법 # comp..

728x90
반응형