아기깨비
아기깨비의 코딩방망이
아기깨비
전체 방문자
오늘
어제
  • 전체보기 (170)
    • Today I Learned (TIL) (0)
      • CS (0)
      • Python (0)
    • Algorithm (170)
      • BAEKJOON (168)
      • Programmers (1)
      • SW Expert Academy (1)
    • Experience (0)
      • 삼성 청년 SW 아카데미 (2022) (0)
      • 혁신성장 청년인재 집중양성 (2019) (0)

인기 글

최근 글

hELLO · Designed By 정상우.
아기깨비

아기깨비의 코딩방망이

[백준 / Python 파이썬] 25328번 - 문자열 집합 조합하기
Algorithm/BAEKJOON

[백준 / Python 파이썬] 25328번 - 문자열 집합 조합하기

2023. 4. 29. 19:04

[Silver III] 문자열 집합 조합하기 - 25328


문제 링크

분류

백트래킹, 브루트포스 알고리즘, 자료 구조, 해시를 사용한 집합과 맵, 문자열

문제 설명

알파벳 소문자로 구성된 문자열 X, Y, Z가 주어진다. 각각의 문자열에는 중복된 문자가 존재하지 않는다. 문자열 S에 있는 문자 중 임의로 k개를 선택하여 문자열 S에서의 순서를 유지하여 만든 모든 부분 문자열을 모아 놓은 집합을 문자열 S에 대한 조합 C(S, k)라고 하자. 예를 들어, 문자열 S = 'abc'에 대한 조합 C(S, 2) = {'ab', 'ac', 'bc'}이다. 입력으로 문자열 X, Y, Z와 정수 k가 주어질 때 C(X, k), C(Y, k), C(Z, k)에 두 번 이상 나타나는 부분 문자열을 오름차순으로 출력하자.

입력

첫 번째 줄에 문자열 X가 주어진다.

두 번째 줄에 문자열 Y가 주어진다.

세 번째 줄에 문자열 Z가 주어진다.

네 번째 줄에 정수 k가 주어진다.

출력

C(X, k), C(Y, k), C(Z, k)에 두 번 이상 나타나는 부분 문자열을 오름차순으로 출력한다. 한 줄에 하나의 부분 문자열을 출력한다. 두 번 이상 나타나는 부분 문자열이 없으면 -1을 출력한다.


import sys
from itertools import combinations
input = sys.stdin.readline

words = [input().strip() for _ in range(3)]
k = int(input())

temp = dict()
result = dict()
for word in words:
    for w in combinations(word, k):
        answer = "".join(w)
        if answer in temp:
            result[answer] = 1
        else:
            temp[answer] = 1


if result:
    result = sorted(result.items())
    for r in result:
        print(r[0])
else:
    print(-1)

'Algorithm > BAEKJOON' 카테고리의 다른 글

[백준 / Python 파이썬] 16165번 - 걸그룹 마스터 준석이  (0) 2023.05.06
[백준 / Python 파이썬] 26169번 - 세 번 이내에 사과를 먹자  (0) 2023.04.29
[백준 / Python 파이썬] 19949번 - 팩토리얼 0의 개수  (0) 2023.04.29
[백준 / Python 파이썬] 1676번 - 팩토리얼 0의 개수  (0) 2023.04.26
[백준 / Python 파이썬] 1620번 - 나는야 포켓몬 마스터 이다솜  (0) 2023.04.26
    'Algorithm/BAEKJOON' 카테고리의 다른 글
    • [백준 / Python 파이썬] 16165번 - 걸그룹 마스터 준석이
    • [백준 / Python 파이썬] 26169번 - 세 번 이내에 사과를 먹자
    • [백준 / Python 파이썬] 19949번 - 팩토리얼 0의 개수
    • [백준 / Python 파이썬] 1676번 - 팩토리얼 0의 개수
    아기깨비
    아기깨비
    아기깨비가 공부하는 일상을 기록하는 블로그 입니다.

    티스토리툴바