일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 테트로미노
- 14500
- 러스트란 #cargo
- 15683
- rust설치
- 14503
- 14890
- 9663
- 연산자 끼워넣기 성공
- C++
- 분해합
- 1259
- 문제풀이
- 15650
- 백준
- C
- 팰린드롬수
- 14501
- 14888
- 10872
- 3190
- 15652
- 2798
- 15649
- rustup
- 14891
- 백트래킹
- 13458
- 13460
- 15651
Archives
Easy-So-Easy
[백준] 1259번 팰린드롬수 - C/C++ 본문
반응형
백준 1259 문제(Problem)
풀이(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;
}
}
반응형
'BaekJoon' 카테고리의 다른 글
[백준] 12100번 2048 (Easy) - C/C++ (0) | 2023.06.25 |
---|---|
[백준] 14888번 연산자 끼워넣기 성공 - C/C++ (0) | 2023.06.24 |
[백준] 10872번 팩토리얼 - C/C++ (0) | 2023.06.22 |
[백준] 2231번 분해합 - C/C++ (0) | 2023.06.22 |
[백준] 2798번 블랙잭 - C/C++ (0) | 2023.06.22 |