250701

lililllilillll·2025년 7월 1일

개발 일지

목록 보기
219/350

✅ What I did today


  • LeetCode
  • 씹어먹는 c++


⚔️ LeetCode


5. Longest Palindromic Substring

string Five::longestPalindrome(string s)
{
	//int left = 0, right = 0;
	//for (int i = 0; i < s.size(); i++)
	//{
	//	for (int j = s.size()-1; i < j; j--)
	//	{
	//		if (j - i < right - left) continue;
	//		bool isPalin = true;
	//		for (int k = 0; k < (j-i+1)/2; k++)
	//		{
	//			if (s[i+k] != s[j-k])
	//			{
	//				isPalin = false;
	//				break;
	//			}
	//		}
	//		if (isPalin)
	//		{
	//			left = i;
	//			right = j;
	//		}
	//	}
	//}
	//return s.substr(left, right - left + 1);
	int sLen = s.size(), start = 0, maxLen = 1;
	int left, right;
	for (int i = 0; i < sLen;)
	{
		left = right = i;
		while (right + 1 < sLen && s[right] == s[right + 1]) right++;
		i = right+1;
		while (0 <= left && right < sLen && s[left] == s[right]) { left--; right++; }
		if (right - left - 1 > maxLen) { start = left + 1; maxLen = right - left - 1; }
	}
	return s.substr(start,maxLen);
}

c++에서 정수끼리 연산하면 소수점 자릿수들은 생각 안하고 아예 버려버린다



💻 씹어먹는 c++


4 - 4. 스타크래프트를 만들자 ② (const, static)

Marine::Marine() : hp(50), coord_x(0), coord_y(0), damage(5), is_dead(false) {}

생성자 이름 뒤에 오는 것을 초기화 리스트 (initailizer list)라고 부른다.

static 멤버 변수 : '클래스' 하나에 종속된다. 프로그램이 종료될 때 소멸된다.

  int& access_x() { return x; }
  int get_x() { return x; }
  void show_x() { std::cout << x << std::endl; }

  int& c = a.access_x();
  c = 4;
  a.show_x();

  // 아래는 오류
  // int& e = a.get_x();
  // e = 2;
  // a.show_x();

get_x로 가져온 int는 값을 복사한 임시 객체라서 레퍼런스로 만들 수 없음

Rvalue(우측값) 레퍼런스

C 정의 : 좌측값은 대입 시에 왼쪽 오른쪽 다 들어갈 수 있는 식, 우측값은 오직 오른쪽에만 오는 식
C++ 정의 : 좌측값은 어떠한 메모리 위치를 가리키고, & 연산자로 위치 참조 가능. 우측값은 좌측값이 아닌 값들.



profile
너 정말 **핵심**을 찔렀어

0개의 댓글