白駿1316号組合せ単語checker-nodejs
この位置決めは、白俊1316号の組合せ語checkefulに関連する.質問リンク
コードはjavascriptで書かれています.
組合せ語とは単語に存在するすべての文字を指し、各文字が連続して現れる場合のみである. 例 プログラムを作成し、N個の単語を入力し、グループ内の単語数を出力してください.
最初の行はグループ語の個数を出力します.
文字列に現れると
したがって、
そこで、まず
コードはjavascriptで書かれています.
質問する
問題の説明
ccazzzzbb
ccazzbbは、c、a、z、bが連続的に現れるため、kinもk、i、nが連続的に現れる組み合わせ語である.aabbbccb
aabbbbccbは組み合わせ語ではありません.bは別々に現れるからです.入力
[첫째 줄]
:単語個数N(1≦N≦100)[둘째 줄 ~ N개의 줄]
:単語が入ってくる.単語はアルファベット小文字だけで、繰り返しず、最長100です.しゅつりょく
最初の行はグループ語の個数を出力します.
に答える
文字列に現れると
같은 알파벳이 연속해서
組合せ語ではない하나라도 떨어져서 나타날 시
組合せ語.入力値として与えられる単語には、グループの単語に対応する個数を出力すればよい.したがって、
인덱스 i의 원소와 인덱스 i+1의 원소가 다를
の場合、後の인덱스 i의 원소와 동일한 원소가 나오면
この語は組み合わせ語ではありません.そこで、まず
단어 개수인 N을 그룹단어 개수로 초기화
を完了してから、上記の論理で各単語を検証します.単語リストに無効な単語が表示された場合、N=1を使用してグループの単語の個数を決定できます.完全なコード
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n').slice(0, -1);
// 단어 개수인 N을 그룹단어 개수로 초기화
let N = Number(input.shift());
// 단어 리스트
const parsed = [...input];
// 단어리스트 loop
for (let el of parsed) {
const len = el.length-1;
// 단어 요소 loop
for (let i=0; i < len; i++) {
// 인덱스 i와 i+1 값이 다를 경우,
if (el[i] !== el[i+1]) {
// 인덱스 i+2 이후에 인덱스 i와 동일한 알파벳이 나올 경우 그룹단어가 아니다.
const test = el.slice(i+2);
if (test.includes(el[i])) {
// 그룹단어 제거
N--;
break;
}
}
}
}
console.log(N);
Reference
この問題について(白駿1316号組合せ単語checker-nodejs), 我々は、より多くの情報をここで見つけました https://velog.io/@dev-redo/백준-1316번-그룹-단어-체커-node.jsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol