728x90
https://www.acmicpc.net/problem/1316
문제접근
- 문자열 안에 반복되는 문자가 또 나오는지 확인하는 문제
- 문자열의 문자들을 컬랙션에 넣고 이미 넣은 단어가 또 나오면 그룹 단어가 아닌걸로 판별
- 연속적으로 나오는건 상관없으니 마지막 단어를 변수에 저장해서 검사하려는 단어와 비교
정답코드
import java.util.*
fun main(args: Array<String>): Unit = with(Scanner(System.`in`)) {
val n = nextInt()
var ans = n
val s = mutableSetOf<Char>()
var last = ' '
for (i in 0 until n) {
val str = next()
for (j in 0 until str.length) {
if (last != str[j] && !s.contains(str[j])) { //마지막 단어와 다르고 아직 안나온 단어
last = str[j] // 마지막 단어 갱신
s.add(str[j]) // 단어를 저장
}
if (last == str[j]) continue //연속된 단어 건너뛰기
if (last != str[j] && s.contains(str[j])) { //마지막 단어와 다른데 이미있는 단어
ans--
break
}
}
s.removeAll(s) // 컬랙션 초기화
last = ' '
}
print(ans)
}
비고
이걸 왜 한번에 못떠올렸지...싶다가 알고리즘을 너무 오래 쉬었긴한가봐요...
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 1418 k-세준수(Kotlin) (0) | 2023.01.30 |
---|---|
백준 1531 - 투명(Kotlin) (0) | 2023.01.29 |
백준 1439번 - 뒤집기(Kotlin) (0) | 2023.01.29 |
백준 1343 - 폴리오미노(Kotlin) (0) | 2023.01.29 |
백준 - 1120 (kotlin) (0) | 2023.01.28 |