[Kotlin, G5] λ°±μ€ 1013λ² Contact
Contact(1013λ²)
Gold 5
#λ¬Έμμ΄ #μ κ· ννμ
https://www.acmicpc.net/problem/1013
λ¬Έμ λ΄μ©
λ¬Έμ μ κ·Ό
μ λ ₯λ°μ μ«μ μ½λκ° (100+1+ | 01)+ μ λ§μ‘±νλμ§ νμΈν΄μΌ νλ€.
μμ μμμμ λ΄€λ€μνΌ, +κΈ°νΈλ νΉμ λ¬Έμκ° λ°λ³΅ν΄μ λμ€λ κ²μ λ»νλ€.
100+μ κ²½μ°μλ 100, 10000, 1000000... μ κ°μ μ«μλ€μ΄ 100+ λ₯Ό λ§μ‘±νλ€.
(01)+μ κ²½μ°μλ κ΄νΈ μμ μ«μλ€μ΄ λ°λ³΅λΌμ λμ€λ κ²μ λ»νλ€.
01, 0101, 010101... μ κ°μ μ«μλ€μ΄ (01)+ μ λ§μ‘±νλ€.
μ°λ¦¬κ° νμΈν΄μΌ ν ν¨ν΄μ (100+1+ | 01)+μ
1. 10 λ€μμ 0μ΄ λ°λ³΅λλ€. κ·Έλ¦¬κ³ λ°λ³΅μ΄ λλλ©΄ 1μ΄ λ°λ³΅λλ€.
2. 01λ‘ λλλ€.
ν¨ν΄ 1 λλ 2κ° λ°λ³΅μ μΌλ‘ λ±μ₯νλ€.
μ 쑰건μ μ κ· ννμμΌλ‘ λνλ΄λ κ²μ μ½λ€.
Kotlinμ μ κ· ννμμ + κΈ°νΈκ° λ¬Έμ μ κ°μ μν μ νλ€(1λ² μ΄μ λ°λ³΅).
μ κ· ννμμ λ€μκ³Ό κ°μ΄ λ§λ€ μ μλ€.
val regex = Regex("(100+1+|01)+")
λ¬Έμ ν΄κ²° μ½λ
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val case = readLine().toInt()
val regex = Regex("(100+1+|01)+")
for (i in 0 until case ) {
val code = readLine()
if (regex.matches(code)) println("YES")
else println("NO")
}
}
λ¬Έμ νμ΄
μμ 쑰건 2κ°λ₯Ό λ§μ‘±ν μ μλ μ κ· ννμμ ꡬμ±νκ³
μ λ ₯λ μ½λκ° μ κ· ννμμ λ§€μΉλλμ§ νμΈνλ€.
λ¬Έμ ν΄κ²° κ³Όμ
μ κ· ννμμ λ¬Έμ μμ λλκ³ μλ €μ€μ μ½κ² ν΄κ²°νλ€.
μ κ· ννμμ μ΄λ€λ©΄ λΈλ‘ μ¦κΈμ λ¬Έμ κ° λμ§λ§, μ°μ§ μλλ€λ©΄ 골λμ λμ΄λλ₯Ό λ§λ³Ό μ μμ κ²μ΄λ€.