MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 11478๋ฒˆ: ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 11478๋ฒˆ: ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜

MUKER 2023. 6. 1. 11:29
 

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

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

www.acmicpc.net


์„ฑ๊ณต ํ’€์ด

let s = readLine()!
var arr = Set<Substring>()

for i in s.indices {
    for j in s.indices[i...] {
        arr.insert(s[i...j])
    }
}
print(arr.count)

ํ’€์ด ํ‚ค์›Œ๋“œ

์ฒ˜์Œ์—๋Š” ์ฃผ์–ด์ง„ s ๋ฌธ์ž์—ด์„ ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด ์‰ฝ๊ฒŒ Int๊ฐ’์œผ๋กœ index๋ฒ”์œ„๋ฅผ ๋ฝ‘์•„์คฌ์—ˆ๋‹ค.
์˜ˆ) i์™€j๋Š” Int , s[i...j].joined()โ€‹

 

1000*1000์ด๋ผ 1์ดˆ์˜ ์‹œ๊ฐ„์ œํ•œ์— ๊ฑธ๋ฆฌ์ง€ ์•Š์„๊ฑฐ๋ผ ์˜ˆ์ƒํ–ˆ์ง€๋งŒ
์ฝ”๋“œ๋ฅผ ์ข€ ์”ฉ ๊ณ ์ณ๋ด๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

swift์˜ index๊ฐ’์„ ๋ฝ‘๋Š”๊ฑด ์ƒ๊ฐ๋ณด๋‹ค ๊นŒ๋‹ค๋กœ์šด๋ฐ
s.indices๋ฅผ ๋ฐ˜๋ณตํ•ด๋ณธ๋‹ค๋ฉด s์˜ index๊ฐ’์„ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค.
์˜ˆ) Index(_rawBits: 65799)โ€‹

์ด index๊ฐ’์„ ์ค‘์ฒฉ for๋ฌธ์œผ๋กœ ๋ฝ‘์•„ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•˜๋ฉด
๋ฐฐ์—ด๋กœ ๋ฒ”์œ„๋ฅผ ๊ตฌํ–ˆ์„ ๋•Œ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค. ์•„๋‹ˆ๋ฉด ๋ฌธ์ž์—ด๋กœ ํ•ฉ์น˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”์„ ์ˆ˜๋„ ์žˆ๋‹ค.