티스토리 뷰
문제
15927번: 회문은 회문아니야!!
팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을
www.acmicpc.net
문제 풀이
1. 문자열이 팰린드롬이 아닌 경우) 문자열 그 자체가 팰린드롬이 아닌 가장 긴 부분 문자열의 길이이므로 그 길이를 출력하면 됩니다.
2. 문자열이 팰린드롬인 경우) 일반적인 팰린드롬의 성질에 대해서 생각해볼 때, 문자열의 시작과 끝 중에서 한 글자만 빠져도 팰린드롬이 깨진 다는 걸 알 수 있습니다.
-
모든 문자가 같은 문자열일 경우 모든 부분문자열에 대해 각 부분 문자열이 팰린드롬이기에 이 경우는 예외 처리해줍니다.
코드
#include <bits/stdc++.h>
using namespace std;
int n;
char c;
string s;
int main() {
cin.tie(NULL); cout.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> s;
n = s.length(); c = s[n / 2];
bool pal = 1, allsame = 1;
for (int i = 0; i < n / 2; i++) {
if (c != s[i]) allsame = 0;
if (s[i] != s[n - 1 - i]) {
pal = 0;
break;
}
}
if (!pal) cout << n;
else {
if (allsame) cout << -1;
else cout << n - 1;
}
}
'Algorithm > BOJ' 카테고리의 다른 글
[백준 2887] 행성터널 (0) | 2020.10.10 |
---|---|
[백준 12107] 약수 지우기 게임 1 (0) | 2020.10.05 |
[백준 2381] 최대거리 (0) | 2020.10.05 |
[백준 5980] Corn Maze (0) | 2020.09.19 |
[백준 1981] 배열에서 이동 (0) | 2020.09.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- 2022 카카오 블라인드 코딩테스트
- 카카오 2021
- 이분탐색
- 동적계획법
- 위클리 챌린지
- 프로그래머스 위클리 9주차
- 표 편집
- 2021 KAKAO BLIND
- 구현
- Kakaoblind
- 프로그래머스 월간코드챌린지
- 누적합
- 백준
- BFS
- 파싱
- 카카오 인턴십
- 2022 KAKAO BLIND RECRUITMENT
- 2020 KAKAO BLIND RECRUITMENT
- 트리
- 카카오 표 편집
- 2021 카카오 블라인드
- 카카오 2020 인턴십
- 투포인터
- DP
- 카카오 2차코딩테스트
- 시뮬레이션
- 게임이론
- 유니온파인드
- 2022 카카오블라인드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함