728x90
문제 소개
AKARAKA(아카라카)는 거꾸로 읽어도 같은 팰린드롬이며, 접두사이자 접미사인 "AKA" 또한 팰린드롬이라는 특징을 가진 문자열이다. 여기서 목표는 AKARAKA가 연속 부분 문자열로 정확히 K번 나타나는 가장 짧은 문자열을 찾는 것이다. 연속 부분 문자열은 원래 문자열에서 시작과 끝에서 문자를 임의로 제거하여 얻을 수 있는 부분 문자열을 뜻한다.
예를 들어, K=1일 때는 "AKARAKA" 자체가 정답이 되고, K=2일 때는 "AKARAKARAKA"가 조건을 만족한다. 주어진 K값에 맞춰 AKARAKA가 중첩되도록 문자열을 구성해야 한다.
문제 해결 방법
AKARAKA가 정확히 K번 포함되도록 가장 짧은 문자열을 만들기 위해, 문자열의 중복을 최소화해야 한다. 이를 위해 첫 번째 "AKARAKA" 이후로 "RAKA"만 반복적으로 붙여준다. 예를 들어 K=3일 경우 "AKARAKARAKARAKA"와 같은 형태가 되어, 이 문자열에는 AKARAKA가 연속 부분 문자열로 3번 나타난다.
- 첫 번째 "AKARAKA" 추가: 기본 문자열로 "AKARAKA"를 추가한다.
- 중복 최소화를 위한 "RAKA" 반복: 이후로는 "RAKA" 부분만 K−1번 반복해 문자열을 확장한다.
백준 32652 아카라카2 문제 파이썬(Python) 정답 코드
def generate_akaraka_string(K):
# "AKARAKA"를 K번 반복하여 중첩 문자열을 생성
result = "AKARAKA" + "RAKA" * (K - 1)
return result
# 입력 받기
K = int(input())
# 결과 출력
print(generate_akaraka_string(K))
코드 해설
- 후보군 생성: 처음에 "AKARAKA" 문자열을 넣고, 이후로는 중복을 피하기 위해 "RAKA"만 K−1번 추가한다.
- 출력 조건 만족: 최종적으로 생성된 문자열은 연속 부분 문자열로 "AKARAKA"가 정확히 K번 포함되며, 이는 가장 짧은 길이로 조건을 만족한다.
백준 32652 아카라카2 문제 파이썬(Python) 제출 결과
도움이 되셨다면 공감과 댓글 부탁드립니다.
728x90
'Python > 백준' 카테고리의 다른 글
백준 트리 장인 [32340] 파이썬(Python) 코드 + 해설 (0) | 2024.11.16 |
---|---|
백준 카드 뒤집기 게임 [32622] 파이썬(Python) 코드 + 해설 (1) | 2024.11.15 |
백준 GLCCDM [32649] 파이썬(Python) 코드 + 해설 (1) | 2024.11.13 |
백준 gcd와 최단 경로 [32632] 파이썬(Python) 코드 + 해설 (0) | 2024.11.12 |
백준 ABB to BA (Hard) [32293] 파이썬(Python) 코드 + 해설 (0) | 2024.11.11 |