210601_TIL

hyeojung·2021년 6월 1일
0

TIL

목록 보기
54/62
post-thumbnail

백준 알고리즘 C++로 풀기

백준 알고리즘 1334번 : 다음 팰린드롬 수

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

string bigger_num(void)
{
	string str;
	cin >> str;
	int i = str.size() - 1;

	str[i]++;
	while (str[i] > '9' && i > 0)
	{
		str[i] = '0';
		str[i-- - 1]++;
	}
	if (str[0] > '9')
	{
		str.insert(0, "1");
		str[1] -= 10;
	}
	return str;
}

string find_palindrome(string str)
{
	int i = 0;
	int j = str.size() - 1;
	int len = j + 1;

	while (i <= j)
	{
		for (int k = len; k > 0; --k)
			if (str[k] > '9')
			{
				str[k - 1]++;
				str[k] = '0';
			}
		if (str[i] < str[j])
		{
			str[j - 1]++;
			str[j] = str[i];
		}
		else if (str[i] > str[j])
			str[j] = str[i];
		i++; j--;
	}
	return str;
}

int is_palindrome(string str)
{
	int i = 0;
	int j = str.size() - 1;
	while (i <= j)
		if (str[i++] != str[j--])
			return 0;
	return 1;
}

int main(void)
{
	string str = find_palindrome(bigger_num());
	while (!is_palindrome(str))
		str = find_palindrome(str);
	cout << str;
	return 0;
}

오늘 알고리즘 스터디에서 풀기 시작하고 집 와서 마무리한 문제!
비효율의 극치인 것 같지만 내 아이디어로 구현에 성공했다..!



42Seoul

gnl

오늘 모든 함수 구현을 마쳤고, 테스트케이스 돌려 보고 나왔다.
line이 잘 읽어지긴 하는데 문제는 무수한 메모리릭의 요청이,,,,,
내일 가서 어떤 부분이 free가 안된 건지 확인하고 하루 종일 고쳐야겠다ㅜ

멘토링

이호준 멘토님과 만나 평소 하고 있던 고민들을 말씀드렸다(휴학해야 할까요 등등..). 멘토님께는 별거 아닌 고민일 수 있음에도 너무 잘 들어주시고 편안한 분위기에서 이것저것 말씀해주셨다.
무엇보다 학생 관성을 깨고 소비자의 마인드가 아닌 생산자의 마인드로 세상을 바라보는 것이 중요하다는 것을 다시 한 번 깨우치게 되었다.
그리고 다음 학기 휴학하고 42서울 과제 달려야겠다고 결심함 휘휘

profile
응애 나 애기 개발자

0개의 댓글