백준 문제를 푸는데, 분명 로직이 맞는 것 같은데 안되는 경우가 있다. int ma=-1; for(int i=1;i<=n;i++){ if(ma < graph[i].size()){ ma = graph[i].size(); save = i; } } 이런 코드...
경비병 세우기 게임(18939, D4, c++)
경비병 세우기 게임 경비병 세우기 게임 문제 Yuto 와 Platina가 보초 세우기 게임이라는 새로운 게임을 해보려고 한다. 이 게임은 N × M의 가로가 긴 격자판에서 진행된다. 게임은 항상 Yuto부터 시작하며, 둘은 번갈아 가면서 자신의 턴에 원하는 빈 위치에 경비병을 세운다. 이 게임에서 ‘안전상태’라는 것은 격자판 안에 완벽히 포함되는...
최솟값 찾기(11003, P5, c++)
최솟값 찾기 최솟값 찾기 문제 N개의 수 A1, A2, …, AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. 입력 첫째 줄에 N과 L이 주어진다. (1 ≤ L ≤ N ≤ 5,000,000) 둘째 줄에는 N...
소트(1071, P5, c++)
소트 소트 문제 N개의 정수가 주어지면, 이것을 연속된 두 수가 연속된 값이 아니게 정렬(A[i] + 1 ≠ A[i+1])하는 프로그램을 작성하시오. 가능한 것이 여러 가지라면 사전순으로 가장 앞서는 것을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 N개의 수가 주어진다. N개의 수는 1,000보...
동전 뒤집기(1285, G1, c++)
동전 뒤집기 동전 뒤집기 풀이 비트 마스킹 문제인데 아직 어색하다. 우선 아이디어 1. 같은 자리를 두 번 이상 뒤집는 것은 아무런 의미가 없다. 그렇기에 모든 가로에 대해 뒤집는 경우 2^20을 해보고, 세로에 대해 그리디하게 뒤집으면 된다. 그러면 시간 복잡도는 2^n * n^2이니까 충분히 해결이 가능하다. 계속 시간 초과가 나서 다...
절망적인 줄(9278, G4, c++)
절망적인 줄 절망적인 줄 문제 해빈시의 공원에는 화장실이 두 개가 있다. 그런데 그 중 하나가 얼마전에 고장났다. 이제 남은 건 한 개 뿐이다…. 문제는 해빈이는 당장 화장실이 가고 싶은데, 화장실 앞의 줄이 매우 길다는 것이다! 고통을 잊기 위해 해빈이는 절망적인 줄을 쳐다보며 아래와 같은 문제를 풀기 시작했다. 화장실 사용료는 50원이다....
냅색 문제(1450, G1, c++)
냅색 문제 냅색 문제 문제 세준이는 N개의 물건을 가지고 있고, 최대 C만큼의 무게를 넣을 수 있는 가방을 하나 가지고 있다. N개의 물건을 가방에 넣는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 ...
팰린드롬 인코딩 (1784, G2, c++)
**팰린드롬 인코딩 ** 팰린드롬 인코딩 문제 준규는 심심해서 팰린드롬 인코딩이라는 새로운 인코딩 방법을 만들었다. 팰린드롬 인코딩은 0과 1로만 이루어진 자료만 인코딩 할 수 있으며, 다음과 같은 과정을 거친다. 문자열 S에서 짝수 길이인 팰린드롬 연속 부분 문자열을 찾는다. 팰린드롬은 앞에서부터 읽을 때와 뒤에서부터 읽을때가 똑같은 문자열...
보이는 산맥(2069, G3, c++)
보이는 산맥 보이는 산맥 문제 맑은 날 울릉도에서 태백산맥을 바라보면 수평선 위로 N개의 산봉우리가(1 ≤ N ≤ 100,000) 보인다. 다음은 N = 5인 경우의 예이다. /\ /\ / \ /\ / \/\ /\/ \/ \ / \ \ / \ / \ ---...
최대공약수 하나 빼기(14476, G2, c++)
최대공약수 하나 빼기 최대공약수 하나 빼기 문제 정수 A가 B로 나누어 떨어지면, B는 A의 약수이고 A는 B의 배수이다. 최대공약수란 정수의 공통된 약수 중 가장 큰 수를 말한다. 예를 들어, 12와 8의 공통된 약수 1, 2, 4 중에서 가장 큰 것은 4이기 때문에 12와 8의 최대공약수는 4이다. N개의 정수 중에서 임의의 수 K를 뺐을...