반응형
Notice
Recent Posts
Recent Comments
«   2024/09   »
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
Archives
관리 메뉴

Easy-So-Easy

[백준] 1259번 팰린드롬수 - C/C++ 본문

BaekJoon

[백준] 1259번 팰린드롬수 - C/C++

섭_민 2023. 6. 22. 07:48
반응형

백준 1259 문제(Problem)

1259
백준 1259 문제

풀이(Solution)

필자는 팰린드롬수와 같은 문제를 풀 때 문자열로 받아서 해결한다. 숫자로 받는 것보다 훨씬 편하니 문자열로 받는 걸 추천한다.

 

사용한 변수를 먼저 말하자면 다음과 같다.

- s : 입력받은 문자열

- len : 입력받은 문자열의 길이

 

문제를 해결한 방법은 아래와 같다.

1. 문자열로 해당 입력을 받는다.

2. i가 0부터 len / 2까지 for문을 반복하여 s[i]와 s[len-i-1]가 다를 경우 팰린드롬수가 아니기 때문에 "no"를 출력한다.

3. 팰린드롬수이면 "yes"를 출력한다.

 

아래 코드를 보면 필자는 goto구문을 사용하여 더욱 용이하게 로직을 구현하였는데, "no"가 출력될 때는 "yes"가 출력되면 안 되니 goto 구문으로 for문을 빠져나옴과 동시에 "yes"도 출력이 되지 않게 구현하였다. 자세한 코드는 전체 코드에서 확인하면 된다.

전체 코드(Code)

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

int main(){
  string s; cin >> s;
  while(s != "0"){
    int len = s.length();
    for(int i=0; i<len/2; i++){
      if(s[i]!=s[len-i-1]){
        cout << "no" << '\n';
        goto go;
      }
    }
    cout << "yes" << '\n';
    go:
      cin >> s;
  }
}
반응형