전체 글

C/C++/알고리즘

백준 3071 - The ♡ System

https://www.acmicpc.net/problem/3071처음엔 어떻게 할지 잘 생각이 나지 않았다.고민하다가 그냥 3진법으로 나타내 봤는데 규칙이 보였다. 위의 예시로 나온 수를 3진법으로 나타내면1 = 12 = 23 = 104 = 115 = 126 = 202048 = 2210212이렇게 된다. 3^0의자리부터 시작해서 값이 2인 곳이 있으면 3을 빼고그 다음 자리(이 경우 3^1)에 +1을 더해주면 위의 규칙과 같은 결과가 나온다는 것을 발견했다. 음수의 경우 abs(n)을 통해 절댓값으로 먼저 새로운 진법을 계산해준뒤 -1은 1로, 1은 -1로 바꿔서 출력해주면 정답을 받을 수 있다. -1의 경우에는 -로 출력해야 함에 유의한다.

C/C++/알고리즘

백준 27436 - 벌집 2

https://www.acmicpc.net/problem/27436   우선 규칙을 찾아야 하는데 주어진 이미지를 보면 1의 위치에서 1칸 떨어져있으면 1+ 6*1내의 범위2칸 떨어져있으면 1+6*1 + 6*2 내의 범위3칸 떨어져있으면 1+6*(1+2+3) 내의 범위.x칸 떨어져있으면 1+6*(1+2+3+...+x) 내의 범위이런 식으로 규칙성을 띈다는 것을 알 수 있다. 이를 통해 우리는 n이 주어졌을때n 1을 더해주는 이유는 경로에 시작하는 위치인 1번방도 포함되기 때문이다. 우선 1~x까지의 합을 간단한 식으로 나타내면x(x+1)/2이다이 식을 대입하면n n  이때 x를 브루트포스와 같이 1에서부터 하나씩 대입하는 방법으로는 시간초과를 받게된다. 이분 탐색을 이용하면 시간내에 값을 구할 수 있다...

개인 공부 및 프로젝트/국비과정

WinAPI PuyoPuyo2

쉽다고 생각하고 금방 만들 수 있겠다고 생각했는데 디테일적으로나 게임 로직에서 신경써야하는 부분이 많은 것 같다.코드도 점점 엉키는 중이다,,,https://www.youtube.com/watch?v=vfWSc4ijN1k

개인 공부 및 프로젝트/국비과정

WinAPI 포트폴리오 - 뿌요뿌요2

어떻게든 비슷하게 기능 구현을 하려고 하는데 코드가 영 아름답지 않다.투명하지 않은 뿌요배경도 지워야 하는데 일단 게임로직 돌아가는거 보는 일에 방해되는게 아니라서 냅뒀다.

C++/Graphics
프로그래밍 공부