그룹 단어 체커 - javascript
문제 (출처)
https://www.acmicpc.net/problem/1316
나의 접근
-
우선 단어의 철자 하나 씩 indexOf를 통해 현재 철자 이후에 있는지 확인 한다.
-
있다면 현재 index 다음이 맞는지 확인한다. 아니라면 break로 그룹단어가 아니라고 인식한다.
풀이
나의 풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('\n');
let result = 0;
for (let i = 1; i <= input[0]; i++){
let a = input[i].split('');
for (let j = 0; j < a.length; j++){
if (a.indexOf(a[j], j + 1) === -1){
if(a.length - 1 === j){ // a의 마지막 글자라면
result++;
}
continue;
}else if(a.indexOf(a[j], j + 1) === j + 1){
continue;
}else{
break;
}
}
}
console.log(result);
모범답안
var N = parseInt(input.shift());
var count = 0;
function solution(str){
var record = [];
for(var i = 0, length = str.length; i < length; i++){
if(record.indexOf(str[i]) === -1){
record.push(str[i]);
} else {
if(record[record.length -1] !== str[i]){
return;
}
}
}
count++;
}
for(var i = 0; i < N; i++){
solution(input[i])
}
console.log(count);
오늘의 배운점 및 교훈
-
사실 이런 문제를 여러번 봤던거 같다. 매번 어렵게 생각하고 문제를 풀었던거 같다.
-
모범답안에서는 확실히 내가 풀었던 것보다 간단한 알고리즘으로 모든 경우의 수를 확인 할 수 있다.
-
비슷한 문제가 많은 것처럼 해당 방법은 이해하고 외워둬야겠다.
Author And Source
이 문제에 관하여(그룹 단어 체커 - javascript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@donq/그룹-단어-체커-javascript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)