같음을 재는 네 가지 방법
첫 줄에 n이, 둘째 줄에 값 n개가 빈칸 하나로 띄워 주어진다.
각 값은 JavaScript 코드에 그대로 쓸 수 있는 문자열 토막이다.
토막은 정수(예: 5, -12, -0), 큰따옴표로 감싼 문자열(예: "5", "", "abc"), 또는 true, false, null, undefined, NaN 가운데 하나다.
토막을 그 JavaScript 값으로 바꾼 뒤, 같은 값을 걸러 내는 일을 네 가지 같음 규칙으로 따로따로 하라.
규칙은 차례로 a == b, a === b, Object.is(a, b), 그리고 Set이 쓰는 같음(new Set에 넣었을 때 하나로 합쳐지는가)이다.
값을 앞에서부터 하나씩 보면서, 그때까지 남긴 값 가운데 그 규칙으로 같은 것이 하나도 없으면 남기고, 있으면 버린다.
규칙마다 한 줄에 남긴 값의 개수와, 남긴 값들의 자리(1부터 센 입력 차례)를 작은 것부터 빈칸으로 띄워 출력하라.
- 입력
- 1 ≤ n ≤ 2000.
정수는 -1000 이상 1000 이하이고 앞에 쓸데없는 0이 붙지 않는다(-0은 나올 수 있다).
따옴표 안의 문자열은 비었거나, 숫자 1 ~ 4글자(0으로 시작할 수 있다)이거나, 영어 소문자 1 ~ 5글자다. - 출력
- 네 줄(==, ===, Object.is, Set 차례)
8 0 -0 NaN NaN "0" null undefined false
4 1 3 4 6 7 1 3 4 5 6 7 8 7 1 2 3 5 6 7 8 6 1 3 5 6 7 8
3 "" 0 "0"
2 1 3 3 1 2 3 3 1 2 3 3 1 2 3