https://www.acmicpc.net/problem/28064
문제
주어진 단어들을 앞뒤로 연결할 수 있는 모든 경우의 수를 확인하는 문제이다.
풀이
주어진 단어들을 나열하고, 앞과 뒤를 잘라가면서 비교하고, 같을 때 카운트하면 된다.
단 두 단어를 비교하면서 앞과 뒤를 비교해도, 뒤와 앞을 비교해도 일치할 때 2 개로 세는 것이 아니라 1 개로 센다.
간단하게 이중 for 문과 슬라이싱을 사용해서 앞과 뒤를 자르고 비교하면 된다.
코드
test = int(input())
word = []
cnt = 0
for i in range(test):
word.append(input())
for i in range(test):
for j in range(i, test):
if i == j:
continue
word_len = len(word[i]) if len(word[i]) <= len(word[j]) else len(word[j])
for n in range(1, word_len+1):
if word[i][:n] == word[j][-1*n:]:
cnt += 1
break
elif word[j][:n] == word[i][-1*n:]:
cnt += 1
break
print(cnt)
'Online Judge > Baekjoon' 카테고리의 다른 글
[Baekjoon 10431] 줄세우기 | Python (0) | 2024.08.31 |
---|---|
[Baekjoon 15312] 이름 궁합 | Python (0) | 2024.08.31 |
[Baekjoon 18870] 좌표 압축 | Python (0) | 2024.08.31 |
[Baekjoon 21920] 서로소 평균 | Python (0) | 2024.08.30 |
[Baekjoon 14915] 진수 변환기 | Python (0) | 2024.08.30 |