백준 13414 수강신청 Python, Node.js

0

Problem Solving

목록 보기
48/49
post-thumbnail

문제

https://www.acmicpc.net/problem/13414

풀이

리스트를 뒤집어서 중복제거를 하면 다시 클릭한 학생에 대해서 나중에 클릭한 부분이 남게되고, 다시 뒤집어서 K까지 출력하면된다.

JavaScript의 경우 Set이 순서를 기억하지만,
Python은 Set이 순서유지가 되지 않기때문에,
순서유지가 되면서 중복을 제거 할 수 있는 딕셔너리를 이용해 풀어준다.

Python

input = __import__('sys').stdin.readline
K, L = map(int, input().split())
students = [input().rstrip() for _ in range(L)]
answer = list(dict.fromkeys(students[::-1]))[:-K-1:-1]
print("\n".join(answer))

JS

const fs = require("fs");
const [n, ...students] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const K = n.split(" ").map(Number)[0];
const answer = [...new Set(students.reverse())].reverse().splice(0, K);
console.log(answer.join("\n"));

9/18일 기준 파이썬 실행시간 1등한게 자랑

0개의 댓글