-
[구현] - 팰린드롬인지 확인하기알고리즘 스터디 02/문제 풀이 2024. 1. 3. 00:16
< 구현 > - < 브론즈 3 >
10988번: 팰린드롬인지 확인하기 (acmicpc.net)
10988번: 팰린드롬인지 확인하기
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
www.acmicpc.net
[ 10988 ] 팰린드롬인지 확인하기
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
:: 입력 ::
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
:: 출력 ::
첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.
처음에는 중간 문자부터 끝으로 나아가며 비교하는 방식을 고안했고 그러려면
단어의 길이가 짝수일 경우랑 홀수일 경우를 구분해야 한다고 생각해서
그렇게 구현했는데 반례는 찾지 못햇지만 계속 틀림 ㅜ
그래서 방식을 바꿔서
맨 앞 문자부터 마지막 문자와 비교하며 중간으로 좁아지는 방식으로 바꿈
이러면 문자의 길이를 구분할 필요 없이 구현이 가능해서 코드도 훨씬 간결해짐정답 코드
#include <bits/stdc++.h> using namespace std; #define fastio cin.tie(0)->sync_with_stdio(0) int main() { fastio; string s; cin >> s; int mid = s.length() / 2; for (int i = 0; i < mid; i++) { if (s[i] != s[s.length() - i - 1]) { cout << 0; return 0; } } cout << 1; return 0; }
'알고리즘 스터디 02 > 문제 풀이' 카테고리의 다른 글
[DFS] - 안전 영역 (1) 2024.01.03 [DFS] - 유기농 배추 (1) 2024.01.03 [BFS] - 미로 탐색 (0) 2024.01.03 [구현] - 트럭 주차 (2) 2024.01.03 [누적합] - 구간 합 구하기4 (0) 2023.12.27