๊ณผ์ผ ํํ๋ฃจ(30804๋ฒ)
Silver 2
#๊ตฌํ #๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ #๋ ํฌ์ธํฐ
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
ํํ๋ฃจ์ ๊ฝํ ์๋ ๊ณผ์ผ์ ์ข ๋ฅ๋ ์ด 9์ข ๋ฅ์ด๊ณ ๋ง๋ค์ด์ผ ํ๋ ํํ๋ฃจ๋ ํน์ ๊ณผ์ผ 2๊ฐ๊ฐ ์ฐ์๋์ด ์๋ ํํ๋ฃจ ์ค ๊ฐ์ฅ ๊ธด ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ 9C2์ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ์ฒดํฌํด์ ๊ฐ์ฅ ๊ธด ๊ธธ์ด๊ฐ ์ ๋ต์ด ๋ ๊ฒ์ด๋ค.
๊ธธ์ด๋ฅผ ์ฒดํฌํ๊ธฐ ์ํด์๋ ์ผ๋จ 9์ข ๋ฅ์ ๊ณผ์ผ ์ค์์ ์ค๋ณต์ ํฌํจํ์ง ์๊ณ ์ ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ 2์ค ๋ฐ๋ณต๋ฌธ์ผ๋ก 2๊ฐ์ง์ ๊ฒฝ์ฐ๋ฅผ ์ ํํ ์ ์๋ค.
์์ธํ ์ค๋ช ์ ์กฐํฉ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒ์ํด ๋ณด๋ฉด ์์ธํ ์ค๋ช ์ด ๋์ฌ ๊ฒ์ด๋ค.
๋ฒ์๋ ๊ณผ์ผ 1๋ถํฐ 9๊น์ง์ด๊ธฐ ๋๋ฌธ์ 1..9๋ก ์ค์ ํด ์ค๋ค.
<์กฐ๊ฑด 1>
๊ทธ๋ค์ ์ ํ๋ ๋ ๊ณผ์ผ์ด ์ ๋ ฅ๊ฐ์ ์์ผ๋ฉด ๊ธธ์ด ์นด์ดํธ๋ฅผ ์ธ์ค์ผ ํ๋ค.
์ ๋ ฅ๊ฐ์ด ๋ ๊ณผ์ผ ์ค ํ๋์ธ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ฅด๋ ์กฐ๊ฑด์ ์ฝ๋๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
tanghulu[k] == i || tanghulu[k] == j
์ ์กฐ๊ฑด์ด ๋ง์ผ๋ฉด ๊ธธ์ด ์นด์ดํธ๋ฅผ ์ธ์ค๋ค. ์ฐ์ํด์ ์ ์กฐ๊ฑด์ด ๋ง์กฑํ๋ค๋ฉด ์ถ๊ฐ์ ์ผ๋ก ๊ธธ์ด๊ฐ ๋์ด๋ ๊ฒ์ด๋ค.
<์กฐ๊ฑด 2>
์ ์กฐ๊ฑด 1์ด ๋ง์กฑํ์ง ์์์ ๊ฒฝ์ฐ์๋ ํ์ฌ ๊ธฐ๋ก๋ ๊ธธ์ด ์นด์ดํธ์ ํ์ฌ ์ต๋ ๊ธธ์ด ์ค์ ๋ ํฐ ๊ฐ์ ๊ณจ๋ผ์ค์ผ ํ๋ค.
์๋๋ผ๋ฉด ๋ฐ๋ก ์กฐ๊ฑด๋ฌธ์ ์์ฑํด์ผ ํ์ง๋ง Kotlin์์๋ max() ํจ์๋ก ์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅํ๋ค.
res = max(res, cnt)
cnt = 0
res๋ณด๋ค cnt(๊ธธ์ด ์นด์ดํธ)๊ฐ ํฌ๋ฉด res๊ฐ ๊ฐฑ์ ์ด ๋ ๊ฒ์ด๋ค. ๋ํ ๊ฐฑ์ ์ ํด์ฃผ๊ณ cnt๋ฅผ ์ด๊ธฐํํ๋ ๊ฒ๋ ์์ผ๋ฉด ์ ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.max
private var tanghulu = listOf<Int>()
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
readLine().toInt()
tanghulu = readLine().split(" ").map { it.toInt() }
var answer = 0
for (i in 1 .. 9) {
for (j in i + 1 .. 9) {
answer = max(answer, getLongestTanghulu(i, j))
}
}
println(answer)
}
private fun getLongestTanghulu(i: Int, j: Int): Int {
var res = 0
var cnt = 0
for (k in tanghulu.indices) {
if (tanghulu[k] == i || tanghulu[k] == j) {
cnt++
} else {
res = max(res, cnt)
cnt = 0
}
}
res = max(res, cnt)
return res
}
๋ฌธ์ ํ์ด
ํ์ฌ ๋ง๋ ํํ๋ฃจ๋ฅผ tanghulu List์ ์ ๋ ฅ๋ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ 9์ข ๋ฅ์ ๊ณผ์ผ ์ค์์ 2๊ฐ๋ฅผ ์ค๋ณต ์์ด ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ๋ฅผ 2์ค for๋ก ๊ตฌ์ฑํด์ ์์์ answer๋ฅผ ๊ฐฑ์ ์์ผ ์ค๋ค.
๊ณ ๋ฅธ ๊ณผ์ผ 2๊ฐ๊ฐ ์ฐ์๋ ๊ฐ์ฅ ๊ธด ํํ๋ฃจ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๊ธฐ ์ํด getLongestTanghulu๋ฅผ ํธ์ถํ๋ค.
getLongestTanghulu์์๋ tanghulu๋ฅผ ์ํํ๋ฉด์ ์ ํ๋ ๊ณผ์ผ 2๊ฐ๊ฐ ์ฐ์ํด์ ๋ค์ด ์๋ ๊ฐ์ฅ ๊ธด ํํ๋ฃจ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๊ณ , ๊ตฌํ ํํ๋ฃจ์ ๊ธธ์ด(cnt)๊ฐ ํ์ฌ ๊ฐ์ฅ ๊ธด ํํ๋ฃจ์ ๊ธธ์ด(res) ๋ณด๋ค ํฐ์ง ํ์ธํด ์ฃผ๊ณ ํฌ๋ฉด ๊ต์ฒดํ๋ค.
๋ฐ๋ณต์ด ๋๋ ํ, ๋ง์ง๋ง์ ์กฐ๊ฑด 1์ ๋ง์กฑํ๋ฉด์ ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด 2๋ฅผ ๋ฐ๋ณต ๋๋๊ณ ๋ค์ ๊ฒ์ฌํด ์ค๋ค.
๊ทธ๋์ผ ์ ํํ ๊ฐ์ return ํ ์ ์๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
์๋ ํฌ ํฌ์ธํฐ๋ก ํธ๋ ๋ฌธ์ ์ด์ง๋ง, ๊ณผ์ผ ์ข ๋ฅ๊ฐ ์ ์ด์ ๋ฌด์ง์ฑ ํ์(๋ธ๋ฃจํธํฌ์ค)์ด ๊ฐ๋ฅํ๋ค.
ํฌ ํฌ์ธํฐ์ ๋ํด์๋ ๊ณต๋ถ๋ฅผ ์ข ํด๋ณด๊ณ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ ์๊ฐ์ด๋ค.
์ดํด๊ฐ ๋ ๋ ํฌ ํฌ์ธํฐ๋ก ํ์ด๋ณด๋ ค๋ค ์คํจํ๊ณ ๋ฌด์ง์ฑ ํ์์ผ๋ก ํ์ด๋ณธ ๋ฌธ์ ์ด๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S1] ๋ฐฑ์ค 5525๋ฒ IOIOI (0) | 2024.08.06 |
---|---|
[Kotlin, S1] ๋ฐฑ์ค 1389๋ฒ ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2024.08.05 |
[Kotlin, S2] ๋ฐฑ์ค 21736๋ฒ ํ๋ด๊ธฐ๋ ์น๊ตฌ๊ฐ ํ์ํด (0) | 2024.08.04 |
[Kotlin, S2] ๋ฐฑ์ค 18111๋ฒ ๋ง์ธํฌ๋ํํธ (0) | 2024.08.03 |
[Kotlin, S3] ๋ฐฑ์ค 31409๋ฒ ์ฐฉ์ ์ ํ ์๋ (0) | 2024.08.02 |