새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기
알고리즘 문제풀이/Python

[백준] 1254 팰린드롬 만들기

by 언호 2022. 2. 5.

📖 문제


🧑🏻‍💻 풀이 과정

1) 문제 이해 및 접근

팰린드롬은 특정 위치를 기준으로 오른쪽 문자들이 앞뒤가 뒤바뀌어도 같으면 왼쪽의 문자열 길이를 뒤에 붙이면 팰린드롬이 만들어진다는 특성을 이용하여 접근하였습니다.

2) 알고리즘

  • 문자열

3) 풀이 코드

사용 언어 - Python

import sys
sys.stdin = open('input.txt')


S = list(sys.stdin.readline().strip())      # 입력 받은 문자열

idx = 0                                     # 오른쪽을 확인할 기준 인덱스
while True:
    if S[idx:] == S[idx:][::-1]:            # 인덱스를 기준으로 오른쪽의 문자들만 앞뒤로 뒤집었을때 팰린드롬인지 확인
        break
    idx += 1                                # 팰린드롬이 아니면 인덱스 증가

print(len(S) + idx)                         # 인덱스를 기준으로 오른쪽이 팰린드롬이 완성이라면, 왼쪽의 인덱스의 개수만큼 뒤에 붙이면 최소 길이의 팰린드롬 완성

📝 결과 및 학습한 내용

1) 어려웠던 내용

특별히 없습니다.

2) 새롭게 학습한 내용

특별히 없습니다.


🔗 문제 링크

- https://www.acmicpc.net/problem/1254

 

1254번: 팰린드롬 만들기

동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는

www.acmicpc.net

 

 

※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다

'알고리즘 문제풀이 > Python' 카테고리의 다른 글

[프로그래머스] 순위 검색  (0) 2022.02.08
[백준] 16120 PPAP  (0) 2022.02.06
[백준] 4358 생태학  (0) 2022.02.04
[백준] 16398 행성 연결  (0) 2022.02.03
[백준] 1197 최소 스패닝 트리  (0) 2022.02.02

댓글