당니의 개발자 스토리

1-D 본문

내 풀이(http://boj.kr/648778731aac46d48372d46e5b571b4c) - 맞음

 

공유 소스 보기

 

www.acmicpc.net


1-D

자 오늘도 재밌게 10988 팰린드롬인지 확인하기 문제를 풀어보도록 할게요.

팰린드롬은 회문이라고도 하고, 거꾸로 읽어도 똑바로 읽어도 똑같은 언어죠.

이 팰린드롬, 회문이라고 하는 거를 확인하는 거, 그러니까 어떠한 문자열이 주어졌을 때 이 문자열이 회문인지를 체크하는 로직을 구현하면 되는 거죠.

자, 어떻게 해야할까요? 우리는 뭘 찾는 거죠?

이렇게 생긴 애들을 찾는 거죠. 그러니까 제가 지금 문자를 예로 들지 않고, 도식화를 시켜서 그림으로 나타내고 있죠. 여러분들도 어떤 문제를 봤을 때 이런 식으로 그림을 그려서 하는 연습해주셔야 됩니다.

자 그러면은 어떠한 문자열이 이렇게 들어오겠죠?

이 네모를 어떻게? 얘를 reverse를 시키는 거예요.

그럼 같아요, 달라요? 다르죠.

그런데 위의 건 reverse를 시켜도 원래의 문자열과 똑같죠.

즉 reverse한 문자열 전체를 뒤집은 것과 원래 문자열을 비교를 해서, 같은지만 확인하면 되겠네요.

로직은 reverse 해서 문자율과 비교를 하면 된다는 거예요.


코드를 볼 게요.

자 일단 reverse 라는 함수는 원본 배열에 영향을 미치게 됩니다. 이 temp라는 문자열, 그러니까 문자열도 하나의 배열입니다. 문자로 이루어진 배열이라고 했죠.

reverse를 그냥 해버리면, 원본 배열이 수정되기 때문에 temp라는 하나의 string을 하나 더 만들어요.

그래서 temp 라는 걸 대신 뒤집어요. 뒤집어서 원본 배열과 같은지를 확인해서 같으면 1, 다르면 0 이런 식으로 출력을 하면 되는 겁니다.

'10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트 > 알고리즘 문제풀이' 카테고리의 다른 글

1-F  (0) 2024.03.08
1-E  (0) 2024.03.06
1-C  (0) 2024.03.05
1-B counting star  (0) 2024.03.05
1-A : 재귀함수로 푸는 방법  (0) 2024.03.04