Q 4.9 회문 확인하기
회문이란 앞으로 읽는것과 뒤로 읽는것 모두 동일한 문자열을 말한다.
Ex) 회문O : 1, 7 ,11 ,121, 333, 2147447412
회문X : -1, 12, 100, 2147483647
이때 주어진 10진수 숫자가 회문인지 아닌지 확인하는 프로그램을 작성하시오.
음수는 회문이 될수없다.
최상위 숫자와 최하위 숫자를 만날때까지 자릿수를 비교하는 방법을 사용하면 시간복잡도 O(n), 공간복잡도 O(n) 이 된다.
공간복잡도를 줄이기 위해 다음과 같은 방법을 사용할까 한다.
최상위 숫자와 최하위 숫자가 서로 같은지를 확인하고 같으면 서로 삭제,
다르면 false를 return 하는 방법을 사용하려고 한다.
ex) 157751 이라면 1 == 1 이므로 서로 삭제하고 5775 의 숫자를 확인한다.
5775 의 5==5 이므로 삭제하고 77의 숫자를 확인 한다. 와 같은 방법으로 지워나간다.
해당 코드와 코딩결과는 다음과 같다.
'C++ 학습 > C++ 코딩인터뷰[4장]' 카테고리의 다른 글
[4. 기본자료형] 4.11 직사각형이 겹치는 확인하기 (0) | 2025.01.08 |
---|---|
[4. 기본자료형] 4.10 임의의 숫자를 균등한 확률로 생성하기 (0) | 2025.01.08 |
[4. 기본자료형] 4.8 숫자뒤집기 (0) | 2024.12.26 |
[4. 기본자료형] 4.7 power계산하기 (0) | 2024.12.26 |
[4. 기본자료형] 4.6 산술 연산자 없이 나눗셈 계산하기 (0) | 2024.12.26 |