def solution(record): answer = [] Nick = {} for r in record: tmp = r.split(' ') if tmp[0] in ['Enter', 'Change']: Nick[tmp[1]] = tmp[2] for r in record: tmp = r.split(' ') if tmp[0] == 'Enter': answer.append(f"{Nick[tmp[1]]}님이 들어왔습니다.") elif tmp[0] == 'Leave': answer.append(f"{Nick[tmp[1]]}님이 나갔습니다.") return answer Nick: {"유저 아이디": "닉네임"}으로 구성된 딕셔너리. 해시를 사용하여 유저 아이디에 대응하는 닉네임을 구할 예정 1. record에서 ..
알고리즘/programmers[2]
def solution(arr1, arr2): row = len(arr1) col = len(arr2[0]) answer = [[0 for b in range(col)] for a in range(row)] for i in range(row): for j in range(col): for k in range(len(arr2)): answer[i][j] += (arr1[i][k] * arr2[k][j]) return answer c언어로 풀듯이 풀어봤습니다. 학교 과제로 제출했던 기억이 나네요 1. 새로 만들어질 행렬은 (arr1의 행의 수, arr2의 열의 수)를 (행, 열)로 가짐. 만들어주고 0으로 초기화시켜줌 2. 3중 for문으로 행렬곱을 수행한 값 넣기(규칙 이용, 아래에 설명) 3. 만들어진 ..
def solution(s): minLen = len(s) for length in range(1, len(s)//2+1): change = "" tmp = s while True: if len(tmp)>=length: count = 1 word = tmp[:length] tmp = tmp[length:] while len(tmp)>=length and word == tmp[:length]: count+=1 tmp = tmp[length:] if count>1: change += (str(count)+word) else: change += word else: change += tmp break minLen = min(minLen, len(change)) return minLen length: 문자열을 자..
import heapq as hq def solution(s, K): answer = 0 hq.heapify(s) while s[0] -1을 반환 최..