Coding Test/문제 풀이

[문제 풀이] 문자열 문제 (백준)

EUNJI HA 2022. 3. 21. 20:26
 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

words = []
num = int(input())
for i in range(num):
    words.append(input())

answer = 0
for word in words:
    count = 0
    temp = ""
    for w in word:
        if temp != w:
            count += 1
            temp = w
    if len(set(word)) == count:
        answer += 1

print(answer)

 

set을 이용한 풀이


 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

word = input()

special = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="]

for s in special:
    word = word.replace(s, "0")

print(len(word))

.replace(old, new)


 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

word = input()
print("".join(sorted(word, reverse=True)))

숫자도 문자열 처럼 정렬 가능


 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

n = int(input())
words = []
for i in range(n):
    words.append(input())

for w in sorted(set(words), key=lambda x: (len(x), x)):
    print(w)

 

정렬의 기준이 여러 개 일 때

key=lambda x: (기준1, 기준2, ...)