https://www.acmicpc.net/problem/2941
나의 답
li = ["c=", "c-","dz=", "d-", "lj", "nj", "s=", "z="]
string = input()
cnt = 0
for check in li:
cnt+=string.count(check)
print(len(string)-cnt)
입력받은 문자열에
각각 크로아티아 알파벳이 몇 개 들어있나 count했다.
전체 문자열 길이에서 - count를 빼줬다.
왜냐하면 크로아티아 알파벳은 길이가 2인데, 한 글자로 인식해야하기 때문이다.
알아가는 것
문자열.count('요소') => 해당 문자열에 요소(문자 혹은 문자열)가 몇 개 있는 지 카운트 해줌
-> 이 때 요소는 문자 1개가 될 수도 있고, 문자열이 될 수도 있다..
다른 사람 답
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
word = input()
for i in croatia :
word = word.replace(i, '*') # input 변수와 동일한 이름의 변수
print(len(word))
replace를 써도 되겠군 ... 메모
Kotlin으로 풀면 - 나으 ㅣ답
fun main() {
val li = listOf("c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=")
var string = readLine()!!
var cnt = 0
for (check in li) {
while (string.contains(check)) {
cnt++
string = string.replaceFirst(check, " ")
}
}
println(string.filterNot { it.isWhitespace() }.length + cnt)
}
- replaceFirst는 코틀린에서 문자열 내의 첫 번째 일치 항목을 다른 문자열로 대체하는 함수
다른 사람
fun main() {
val croatianAlphabets = listOf("c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=")
var inputString = readLine()!!
for (alphabet in croatianAlphabets) {
inputString = inputString.replace(alphabet, "*")
}
println(inputString.length)
}
replaceFirst는 코틀린에서 문자열 내의 첫 번째 일치 항목을 다른 문자열로 대체하는 함수입니다. 하지만, 이 경우에는 사용이 적절하지 않을수 있다 !
대신 replace() 메서드를 사용하여 모든 일치 항목을 대체하기.
'코딩테스트' 카테고리의 다른 글
[Python] 백준 12789번 - 도키도키 간식드리미 (0) | 2024.05.30 |
---|---|
[Python] 백준 17266번 - 어두운 굴다리 (0) | 2024.05.30 |
[Python] 가장 높은 탑 쌓기 (LIS 응용) (0) | 2024.05.24 |
[Python] 백준 1316번 - 그룹 단어 체커 (0) | 2024.05.23 |
[Python] 섹션 8 DP(동적계획법) - 최대 부분 증가수열 (0) | 2024.05.23 |