๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
๋ฐ˜์‘ํ˜•

๋ฐฑ์ค€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ nodejs 1316๋ฒˆ ๊ทธ๋ฃน ๋‹จ์–ด ์ฒดํฌ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs)๋กœ ๋ฐฑ์ค€ 1316๋ฒˆ ๋ฌธ์ œ์ธ '๊ทธ๋ฃน ๋‹จ์–ด ์ฒด์ปค' ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•ด๋ณด๊ฒ ๋‹ค.

โ“ ๋ฌธ์ œ 

๋ฌธ์ œ ์„ค๋ช…

๊ทธ๋ฃน ๋‹จ์–ด๋ž€ ๋‹จ์–ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ, ๊ฐ ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ๋งŒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ccazzzzbb๋Š” c, a, z, b๊ฐ€ ๋ชจ๋‘ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ณ , kin๋„ k, i, n์ด ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน ๋‹จ์–ด์ด์ง€๋งŒ, aabbbccb๋Š” b๊ฐ€ ๋–จ์–ด์ ธ์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฃน ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋‹ค.
๋‹จ์–ด N๊ฐœ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

  • ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ๋“ค์–ด์˜จ๋‹ค. N์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ๋˜์–ด์žˆ๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉฐ, ๊ธธ์ด๋Š” ์ตœ๋Œ€ 100์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

3
happy
new
year

์˜ˆ์ œ ์ถœ๋ ฅ 1

3

์˜ˆ์ œ ์ž…๋ ฅ 2

4
aba
abab
abcabc
a

์˜ˆ์ œ ์ถœ๋ ฅ 2

1

์˜ˆ์ œ ์ž…๋ ฅ 3

5
ab
aa
aca
ba
bb

์˜ˆ์ œ ์ถœ๋ ฅ 3

4

๐Ÿ’ก ํ’€์ด

๋จผ์ € ์ž…๋ ฅ์„ ๋ฐ›์„ ๊ฐ’๋“ค์„ arr ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ด ์ฃผ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  answer ๋ณ€์ˆ˜์— arr์˜ length๋ฅผ ํ• ๋‹นํ•ด ์ฃผ์—ˆ๋Š”๋ฐ, ์ด์œ ๋Š” ๊ทธ๋ฃน ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๋ฌธ์ž์—ด์„ ์ฐพ์„ ๋•Œ๋งˆ๋‹ค -1์„ ํ•ด์ค˜์„œ ์ •๋‹ต์„ return ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

 

arr๋ฐฐ์—ด ๋ณ€์ˆ˜๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ temp๋ผ๋Š” ๋ณ€์ˆ˜์— arr์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์˜ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ํ• ๋‹นํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋ฃน ๋ฌธ์ž์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒ๋ณ„ํ•  ๋•Œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฐ’์ด ์žˆ์–ด์•ผ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๊ณ , ์ด์ค‘ for๋ฌธ์ด ๋๋‚˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋” ๋‹ค์‹œ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์ˆœํšŒํ•  ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด์ค‘ for๋ฌธ์€ ๋‘๋ฒˆ์งธ ๋ฌธ์ž ์ฆ‰, 1๋ฒˆ index๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋„๋ก ํ–ˆ๋‹ค. 

์ˆœํšŒ๋ฅผ ํ•˜๋ฉด์„œ temp ๋ฌธ์ž์—ด ๋ณ€์ˆ˜์— ํ˜„์žฌ ์ˆœํšŒํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๋ฐ!(includes), ์ „์— ๋ฌธ์ž๋ž‘ ๊ฐ™์ง€ ์•Š๋‹ค? 

๊ทธ๋Ÿผ ์œ„์— answer๋ฐฐ์—ด์—์„œ -1์„ ํ•ด์ฃผ๋„๋ก ํ•˜๊ณ  ์ด๋ฏธ ๊ทธ๋ฃน ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๊ฒŒ ํ™•์ธ์ด ๋˜์—ˆ์œผ๋‹ˆ  break ํ•˜์—ฌ๊ธˆ ํ˜„์žฌ for๋ฌธ์„ ์ค‘์ง€ํ•˜๊ณ  ๋น ์ ธ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์—ˆ๋‹ค.

 

if๋ฌธ์„ ๊ฑฐ์น˜์ง€ ์•Š์•˜๋‹ค๋ฉด temp๋ณ€์ˆ˜์— ํ˜„์žฌ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด ์คŒ์œผ๋กœ์จ ์ œ๋Œ€๋กœ ๋œ ํŒ๋ณ„์ด ๋˜๊ฒŒ๋” ํ•ด์ฃผ์—ˆ๋‹ค.

ํ’€์ด ์ฝ”๋“œ

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = fs.readFileSync(file).toString().trim().split('\n');
const arr = [];

for (let i = 1; i < input.length; i++) {
  arr.push(input[i]);
}

let answer = arr.length;
let temp = '';

arr.forEach((item) => {
  temp = item[0];
  for (let i = 1; i < item.length; i++) {
    if (temp.includes(item[i]) && item[i - 1] !== item[i]) {
      answer--;
      break;
    }
    temp += item[i];
  }
});

console.log(answer);

โœ” ์ฑ„์ 

์ œ์ถœ ๊ฒฐ๊ณผ

๋ฐ˜์‘ํ˜•
profile

๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป

@์šฉ๋‡ฝ

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!