Computer Science/알고리즘 ( Algorithm ) 22

XX 알고리즘 문제 2

Input: 1Output: ["()"] Input: 2Output: ["(())", "()()"] Input: 3Output: ["((()))", "(()())", "()(())", "(())()", "()()()"] def bfs(ans,char,l,r,n): global list # 다 썼을때 # )가 먼저 나오면 안됨. if r > l: return # 추가 부분 ans += char if char=="(": l+=1 if r==n: return elif char==")": r+=1 if l == n and r == n : if ans[-1]=="(": return list.append(ans) return if l!=n: ans2 = [x for x in ans] #deep copy bfs(an..

Codility - Binary gap

Binary gap은 양의 정수로 이루어져 있습니다. 양 끝에 1로 둘러 쌓이고 연속적으로 0으로 나열된 최댓값 입니다.예를 들어서, 숫자 9를 바이너리로 표현하면 1001이고 Binary gap이 2인 길이가 됩니다. 숫자 529는 1000010001이고 4와 3입니다.숫자 20은 10100 이고 길이가 1이 됩니다 .15는 1111으로 Binary gap이 존재하지 않습니다 .숫자 32는 100000으로 존재하지 않습니다.양의 정수가 주어지고 제일 길이가 큰 Binary gap을 구해주세요. 만약 존재하지 않다면 0을 반환해주세요. 예를 들어서 N = 1041이면 5를 return 해주면 됩니다.왜냐하면 바이너리로 표현하면 1000010001에서 제일 길이가 큰 5가 정답이 됩니다. python# y..

카카오 오픈채팅방

def solution(records): users = {} cmd = {"Enter": "님이 들어왔습니다.", "Leave": "님이 나갔습니다."} for record in records: strSplit = record.split() if strSplit[0] == 'Enter': users[strSplit[1]] = strSplit[2] elif strSplit[0] == 'Change': users[strSplit[1]] = strSplit[2] output = [] for record in records: strSplit = record.split() if strSplit[0] != "Change": output.append('{}{}'.format(users[strSplit[1]], cmd..