Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 오일러프로젝트
- DFS
- Spring Data JPA
- 로드밸런서
- Kafka
- 월미도
- 스프링 부트
- Apache Kafka
- 카프카
- gcp
- Spring
- 알고리즘
- Docker
- Spring Boot
- 클라우드
- 쿠버네티스
- 스프링부트
- springboot
- aws
- 클라우드 컴퓨팅
- 인천여행
- 백트래킹
- 자료구조
- Elasticsearch
- 프로그래밍문제
- 스프링
- 코드업
- JPA
- VPC
- 백준
Archives
- Today
- Total
GW LABS
[Backjoon] 소수&팰린드롬 본문
C++로 문제푸는 연습을 다시하면서 복습을 할만한 문제였다. 소수 판별의 경우 에라토스테네스의 채를 사용할 수도 있지만 판별하려는 숫자의 제곱근만큼만 탐색하면서 소수를 찾아도 충분히 풀 수 있는 문제였다. 팰린드롬 판별의 경우에는 문자열로 변환하여 손쉽게 판별할 수 있었다. 아래는 풀이이다.
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
bool isPrime(const int& number) {
if (number == 1) {
return false;
}
if (number == 2) {
return true;
}
bool answer = true;
int limit = static_cast<int>(sqrt(number));
for (int idx = 2; idx <= limit; idx++) {
if (number % idx == 0) {
answer = false;
break;
}
}
return answer;
}
bool isPalindrome(const int& number) {
int targetNumber = number;
string target = to_string(targetNumber);
int length = target.length();
int halfLength = length / 2;
bool answer = true;
for (int idx = 0; idx < halfLength; idx++) {
if (target[idx] != target[length - idx - 1]) {
answer = false;
break;
}
}
return answer;
}
int main() {
int number;
cin >> number;
while (true) {
if (isPrime(number) && isPalindrome(number)) {
break;
}
number++;
}
cout << number << endl;
return 0;
}
'Algorithm & DataStructure' 카테고리의 다른 글
[Backjoon] 숫자놀이 (0) | 2022.02.08 |
---|---|
[Backjoon] 촌수계산 (0) | 2021.02.28 |
[Backjoon] 트럭 주차 (0) | 2021.01.02 |
[Backjoon] 회전하는 큐 (0) | 2020.12.18 |
[Backjoon] 통나무 건너뛰기 (0) | 2020.12.13 |
Comments