백준 1259번: 팰린드롬수

2024. 4. 29. 23:46·PS

 


 

문제

각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다.

입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

 

 

 

실행 결과

 

 

 

 

 

코드(c++)

#include <iostream>
#include <string>
using namespace std;

// 문자열이 팰린드롬이면 true 라턴
bool isPalindrome(string str) {
  bool isPalindrome = true;
  for (int i = 0; i < str.length() / 2; i++) {
    if (str[i] != str[str.length() - i - 1]) {
      isPalindrome = false;
      break;
    }
  }
  return isPalindrome;
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);

  string str = "";
  while (cin >> str) {
    if (str == "0") {
      break;
    }
    if (isPalindrome(str))
      cout << "yes";
    else
      cout << "no";
    cout << endl;
    string str = ""; // 초기화
  }
  return 0;
}

 

 

 

 

코드 설명

팰린드롬수란 어떤 단어를 뒤에서부터 읽어도 똑같은 수를 의미한다.

즉 문자열 중 가운데 부분을 기준으로 대칭이면 된다.

ex. 12121, 13455431

 

이를 판단하기 위해 문자열을 한 문자씩 나누고 

문자열의 i번째 문자와 n-i번째 문자가 같은지 비교한다.여기서 n은 문자열의 길이인 str.length()을 의미한다.코드 작성 시 주의해야 할 점은 배열 index는 0부터 n-1까지이기 때문에

str[i] != str[str.length() - i - 1] 이런 식으로 작성해야 한다.

 

그리고 문자열의 전체 길이의 절반까지만 비교해도 결과가 같기 때문에

str.length() / 2까지만 비교해도 문제 없이 돌아간다.

 

 


 

문제 출처:

https://www.acmicpc.net/problem/1259

 

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

코드트리: 함수를 이용한 연속부분수열 여부 판단하기  (0) 2024.05.06
백준 2869번: 달팽이는 올라가고 싶다  (0) 2024.05.03
코드트리: 최대공약수와 최소공배수  (0) 2024.04.28
백준 2747번: 피보나치 수  (0) 2024.04.27
백준 2444번: 별 찍기 - 7  (0) 2024.04.26
'PS' 카테고리의 다른 글
  • 코드트리: 함수를 이용한 연속부분수열 여부 판단하기
  • 백준 2869번: 달팽이는 올라가고 싶다
  • 코드트리: 최대공약수와 최소공배수
  • 백준 2747번: 피보나치 수
abyss-s
abyss-s
프론트엔드 개발합니다!
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (189) N
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (13) N
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (4) N
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    OS
    자바스크립트
    파이썬
    JavaScript
    React
    BFS
    네트워크
    BAEKJOON
    코드트리
    생활코딩
    운영체제
    자바기반응용프로그래밍
    Java
    통계학
    github
    Python
    그리디
    백준
    DP
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
백준 1259번: 팰린드롬수
상단으로

티스토리툴바