정말 뻘짓 최강 많이한 문제
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\n');
let N = input.shift();
//2. 나온단어랑같다 근데 직전문자와 같다 - 그룹단어
//3. 나온단어랑같다 근데 직전문자와 다르다 - 그룹단어x
// 그룹단어가 되는 경우
// 1. 중복되는 문자가 없는 단어
// 2. 중복되는 문자가 있으면 그 문자가 연속하여 나오는 경우
// * 연속되지 않게 나오는 중복문자인 경우 그룹단어가 아니다
let uniqArr = []
let count = 0;
let resultNum = 0;
for(let i=0; i < N; i++) {
let arr = input[i].split('');
uniqArr = [];
count = 0;
// 중복제거문자 배열(uniq) 생성
arr.forEach(element => {
if(!uniqArr.includes(element)) {
uniqArr.push(element);
}
});
//빈도가 2이상일 때 - 직전과 같 or 직전과 다르다 를 구분
let sameCount = 0;
for(let j=0; j < arr.length; j++) {
if(uniqArr.includes(arr[j])) {
sameCount++;
}
if (sameCount > 1) {
if(arr[j] === arr[j+1]) {
count++; //count가 올라가면 중복이다가 0(떨어진곳에서 중복발생)이되면 그룹단어 탈락
} else { count = 0; }
}
}
console.log(sameCount)
let s = '';
let a = '';
uniqArr.forEach(e => {s += e});
arr.forEach(e => {a += e});
console.log(s)
console.log(a)
console.log(count)
if(s === a) { //중복되는 문자가 없는 단어
resultNum++;
} else if(count > 0) {
resultNum++;
}
}
console.log(resultNum);
이건 심지어 vscode에서도 안돼
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\n');
let N = input.shift();
//1. 중복된 문자가 없는 단어
//2. 중복된 문자가 있으되 그 문자가 직전문자와 동일한 단어
//*** 단어중 중복된 문자를 찾는것이 관건
let count = 0;
let group = 5;
let dic = {};
for(let x=0; x < N; x++) {
let str = input[x];
let strWordArr = str.split(''); //각 문자들의 배열
dic = {};
// aabbbccb happy
group = 5;
for(let i = 0; i < strWordArr.length-1; i++) {
for(let j=i+1; j < strWordArr.length; j++) {
//console.log(strWordArr[i],strWordArr[j]);
if(strWordArr[i] === strWordArr[j] && group !== -1) {
if(dic[strWordArr[i]] >= 1) {
dic[strWordArr[i]] = dic[strWordArr[i]] + 1;
} else {dic[strWordArr[i]] = 1;}
if(strWordArr[j] === strWordArr[j-1]) {
group = 1;
} else {
group = -1;
console.log('d');
}
}
}
console.log('----------');
}
console.log('=============================');
if(Object.keys(dic).length === 0 || group === 1) {
count++;
}
}
console.log(count);
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\n');
let N = input.shift();
let count = 0;
let group = 5;
let dic = {};
for(let x=0; x < N; x++) {
let str = input[x];
let strWordArr = str.split(''); //각 문자들의 배열
dic = {};
group = 5;
for(let i = 0; i < strWordArr.length-1; i++) {
for(let j=i+1; j < strWordArr.length; j++) {
if(strWordArr[i] === strWordArr[j] && group !== -1) {
if(dic[strWordArr[i]] >= 1) {
dic[strWordArr[i]] = dic[strWordArr[i]] + 1;
} else {dic[strWordArr[i]] = 1;}
if(strWordArr[j] === strWordArr[j-1]) {group = 1;}
else { group = -1;}
}
}
}
if(Object.keys(dic).length === 0 || group === 1) {
count++;
}
}
console.log(count);
저 코드는 앞에 주석을 기초로 한 코드이다.
아무리 생각해도 내가 너무 복잡하게 푼거 같다. 특히 저 끊임없는for문과 if문들의 향연은 보기만 해도 아찔하다.