https://www.acmicpc.net/problem/16499
문제
소문자로 이루어진 단어 N개가 주어졌을 때, 단어가 총 최소 몇 개의 그룹으로 이루어져 있는지 구하는 프로그램을 작성하시오.
그룹에 속한 단어는 모두 같은 알파벳으로 이루어져 있어야 하고, 개수도 같아야 한다. 즉, 단어를 구성하는 알파벳의 순서만 달라야 한다.
입력
첫째 줄에 단어의 개수 N이 주어진다. (2 ≤ N ≤ 100) 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 10을 넘지 않는다.
출력
첫째 줄에 그룹의 최소 개수를 출력한다.
예제 입력 1 복사
4
cat
dog
god
tca
예제 출력 1 복사
2
예제 입력 2 복사
2
a
a
예제 출력 2 복사
1
문제풀이(1)
1. 정해진 단어들을 오름차순으로 정렬한다.
2. set 객체를 활용하여 중복되는 단어들을 제거한다.
3. 중복이 제거된 set 객체의 size를 출력한다.
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const [N, ...arr] = require("fs").readFileSync(filePath).toString().trim().split("\n");
const setArr = new Set();
arr.forEach((el) => {
setArr.add(el.split("").sort().join(""));
});
console.log(setArr.size);
'Algorithm' 카테고리의 다른 글
[Baekjoon]1812번 사탕 - Javascript (1) | 2024.02.06 |
---|---|
[Baekjoon]1895번 필터 - Javascript (1) | 2024.02.05 |
[Baekjoon]14594번 동방 프로젝트 (Small) - Javascript (1) | 2024.02.01 |
[Baekjoon]15736번 청기 백기 - Javascript (0) | 2024.01.31 |
[Baekjoon]11507번 카드셋트 - Javascript (1) | 2024.01.30 |