본문 바로가기

삽질의 기록

(2)
[C++] 소인수분해: 두 소수 p, q의 곱 n이 주어질 때, p, q 알아내기 이 사람은 왜 이런 짓을 했는가? 시험 기간인데 시험 공부는 하기 싫어서 간단한 알고리즘을 짜봤다. 문제 RSA 알고리즘을 배울 때 꼭 한 번씩 들어보는 말. 두 소수 p, q가 주어졌을 때 n을 계산하는 건 매우 단순한 일이지만, 두 소수의 곱 n이 주어졌을 때 p, q를 알아내는 건 NP 문제다. 그래서 어떻게 하면 n이 주어졌을 때 p, q를 빠르게 알아낼 수 있을까?라는 질문이 샤워 도중 떠올랐고, 샤워하면서 한 생각을 코드로 옮겨봤다. 알고리즘 거창한 문제에 비해 내 생각은 단순했다. twosum 문제를 좀 응용하면 되지 않을까? 정확한 사고 과정은 아래와 같았다. 두 소수 p, q를 곱한 n이 있다면, p와 q는 sqrt(n)에서 비슷하게 떨어져 있지 않을까? 3 * 13, 7 * 13을 해봄..
[Unity] UI Text 가비지 제거, 삽질의 기록 ※ 해당 글은 ToString()으로 인해 발생한 가비지를 제거하려는 시도로, 삽질이 많습니다. 결론은 3. 결과부터 참고하시면 됩니다. ※ 테스트 시 자주 프레임 드랍이 되는 것을 목격하고, 유니티 프로파일러로 분석하고 있었다. 원인은 자주 일어나는 가비지 콜렉터 실행. 프로파일러로 가비지가 쌓이는 부분을 추적했다. void UpdateScorePanel() { scoreText.text = GameManager.Instance.score.ToString(); } 해당 함수의 내용은 위와 같았다. int값인 score를 ToSting()으로 변환시킬 때마다, 가비지가 생성된 것. 이 함수는 플레이어가 점수를 얻을 때마다 실행되므로, 계속된 플레이 시 부담이 클 것 같았다. 그래서 이 부분을 없애보기로 ..