-
2023 KAKAO BLIND RECRUITMENT - 표 병합코딩 테스트/Level 3 2023. 1. 8. 20:03반응형
https://school.programmers.co.kr/learn/courses/30/lessons/150366
단순하게 리스트로 머지 상태를 관리했다.
def solution(commands): def rc2index(r, c): return (int(r) - 1) * 50 + int(c) - 1 def update(p, s): old_state = states[p] for index in range(length): if states[index] == old_state: table[index] = s def replace(s1, s2): for index in range(length): if table[index] == s1: table[index] = s2 def merge(p1, p2): change = None if table[p1] != 'EMPTY' and table[p2] == 'EMPTY': change = table[p1] elif table[p1] == 'EMPTY' and table[p2] != 'EMPTY': change = table[p2] elif table[p1] != 'EMPTY' and table[p2] != 'EMPTY': change = table[p1] old_state = states[p2] for index in range(length): if states[index] == old_state: states[index] = states[p1] if change: for index in range(length): if states[index] == states[p1]: table[index] = change def unmerge(p): old_value = table[p] old_state = states[p] for index in range(length): if states[index] == old_state: states[index] = index table[index] = 'EMPTY' table[p] = old_value def print_(p): answer.append(table[p]) def solve(): for line in commands: command, *tokens = line.split() if command == 'UPDATE': if len(tokens) > 2: update(rc2index(tokens[0], tokens[1]), tokens[2]) else: replace(tokens[0], tokens[1]) elif command == 'MERGE': merge(rc2index(tokens[0], tokens[1]), rc2index(tokens[2], tokens[3])) elif command == 'UNMERGE': unmerge(rc2index(tokens[0], tokens[1])) elif command == 'PRINT': print_(rc2index(tokens[0], tokens[1])) length = 2500 answer = [] table = ['EMPTY'] * length states = list(range(length)) solve() return answer
테스트 1 〉 통과 (2.80ms, 10.4MB) 테스트 2 〉 통과 (1.43ms, 10.3MB) 테스트 3 〉 통과 (0.86ms, 10.4MB) 테스트 4 〉 통과 (0.51ms, 10.3MB) 테스트 5 〉 통과 (1.67ms, 10.3MB) 테스트 6 〉 통과 (1.93ms, 10.4MB) 테스트 7 〉 통과 (2.79ms, 10.3MB) 테스트 8 〉 통과 (3.98ms, 10.3MB) 테스트 9 〉 통과 (9.41ms, 10.4MB) 테스트 10 〉 통과 (8.95ms, 10.3MB) 테스트 11 〉 통과 (9.57ms, 10.4MB) 테스트 12 〉 통과 (10.79ms, 10.3MB) 테스트 13 〉 통과 (104.07ms, 10.4MB) 테스트 14 〉 통과 (102.26ms, 10.3MB) 테스트 15 〉 통과 (130.07ms, 10.3MB) 테스트 16 〉 통과 (136.00ms, 10.4MB) 테스트 17 〉 통과 (105.26ms, 10.5MB) 테스트 18 〉 통과 (124.98ms, 10.2MB) 테스트 19 〉 통과 (140.12ms, 10.4MB) 테스트 20 〉 통과 (101.81ms, 10.5MB) 테스트 21 〉 통과 (259.23ms, 10.3MB) 테스트 22 〉 통과 (98.30ms, 10.3MB)
반응형