2019 KACA新規採用第1ラウンド:1.オープンチャットルーム(Python)


オープンチャットルーム

  • Difficulty: Level 2
  • Type: String/Hash
  • link
  • Solution

  • idをキーにニックネームを値として保存し、結果を順番に出力すると、簡単に答えが得られます.
  • 時間複雑度:O(n)
  • import collections
    def solution(record):
        output = []
        result = []
        ids = collections.defaultdict(str)
        for r in record:
            command = r.split()
            if command[0] == "Enter":
                ids[command[1]] = command[2]
                output.append((command[1],"Enter"))
            elif command[0] == "Leave":
                output.append((command[1],"Leave"))
            elif command[0] == "Change":
                ids[command[1]] = command[2]
    
        for id,action in output:
            if action == "Enter":
                result.append(f"{ids[id]}님이 들어왔습니다.")
            elif action == "Leave":
                result.append(f"{ids[id]}님이 나갔습니다.")
        return result