๐Ÿ“– Algorithm/๐Ÿ“ ๋ฐฑ์ค€

Kotlin ๐Ÿฌ ๋ฐฑ์ค€ 14๋‹จ๊ณ„ :: 11478 ๋ฒˆ

๋ฒŒ๊ฟ€์˜ค์†Œ๋ฆฌ๐Ÿฆก 2024. 3. 7. 23:59
๋ฐ˜์‘ํ˜•

์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ   |

  ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, S์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

  ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ S์—์„œ ์—ฐ์†๋œ ์ผ๋ถ€๋ถ„์„ ๋งํ•˜๋ฉฐ, ๊ธธ์ด๊ฐ€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

  ์˜ˆ๋ฅผ ๋“ค์–ด, ababc์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ a, b, a, b, c, ab, ba, ab, bc, aba, bab, abc, abab, babc, ababc๊ฐ€ ์žˆ๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ๊ฒƒ์˜ ๊ฐœ์ˆ˜๋Š” 12๊ฐœ์ด๋‹ค.

 

์ž…๋ ฅ   |

  ์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๋Š” 1,000 ์ดํ•˜์ด๋‹ค.

 

์ถœ๋ ฅ   |

  ์ฒซ์งธ ์ค„์— S์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

ํ’€์ด  |

  S์˜ ๊ธธ์ด๋งŒํผ for๋ฌธ์„ ๋Œ๋ฉด์„œ ๋‚ด๋ถ€์—์„œ index๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋„๋ก for๋ฌธ์„ ๋Œ์•„ S๋ฅผ substring ํ•ด์ค€๋‹ค.

 

 

๋‹ต์•ˆ  |

fun main() {
    val S = readLine()!!
    val stList = mutableSetOf<String>()
    
    for (i in S.indices) {
        for (j in i + 1..S.length) {
            stList.add(S.substring(i, j))
        }
    }
    
    print(stList.size)
}
๋ฐ˜์‘ํ˜•