백준
-
백준 10815번 C++ 풀이백준 2018. 10. 7. 11:41
#include #include #include using namespace std; long long buffer[500001]; long long n; long long find(long long start, long long end, long long temp){ if (start == end) return 0; long long middle = (start + end) /2; if (buffer[middle] == temp){ return 1; }else if (temp < buffer[middle]){ return find(start, middle, temp); }else { return find(middle+1,end,temp); } } int main() { cin.tie(NULL); ios..
-
백준 1890 C++ 풀이백준 2018. 10. 4. 00:46
DFS로 풀라고 해서 풀었더니. 시간 초과가 떴습니다 (그럼 왜 DFS로 풀라고 한 건지 ㅡㅅㅡ ) DP로 푸니까 답이 안 나와서 보니까.맨 마지막 route에서 DFS 를 호출해서 값이 과장된 게 문제였어요. 고치고 제출하니 틀렸스빈다 뜨길래,이번엔 경로값을 int에서 롱롱으로 바꿨더니 통과. #include #include #include using namespace std; int buffer[1001][1001]; long long route[1001][1001]; int number; int N; void DFS(int x, int y) { int temp = buffer[x][y]; if (x == N-1 && y == N-1) return; if (x + temp < N) { route[x ..
-
백준 10216번 풀이백준 2018. 10. 3. 23:42
#include #include #include using namespace std; struct Tower { int x, y, radius; }; bool isNeighbor(Tower a, Tower b) { long long x = a.x - b.x; long long y = a.y - b.y; long long radius = a.radius + b.radius; return radius * radius >= x * x + y * y; } int villa(int index, int size, bool isVisited[], Tower towers[]) { isVisited[index] = true; int sum = 0; for (int i = 0; i < size; i++) { if (i !..
-
백준 2178번 C++ 풀이백준 2018. 10. 3. 20:31
#include #include #include using namespace std; int N, M; int buffer[1000][1000]; deque dq; struct Dir { int y, x; }; Dir moveDir[4] = {{1,0}, {-1, 0},{0, 1}, {0,-1}}; void BFS(){ int w = 0; if (dq.empty()){ return; } while (!dq.empty()){ int currentSize = dq.size(); w++; for (int i =0; i< currentSize; i++){ int x = dq.front().first; int y = dq.front().second; for (int j = 0; j< 4 ; j++){ int ne..
-
백준 1547번 C++ 풀이백준 2018. 9. 6. 00:48
#include #include using namespace std; bool buffer[3]; void swap(int a, int b){ int temp = buffer[a]; buffer[a] = buffer[b]; buffer[b] = temp; } int main(int argc, const char * argv[]) { cin.tie(NULL); ios::sync_with_stdio(false); int n; buffer[0] = true; cin >> n; for (int i = 0; i > a >> b; swap(a-1, b-1); } for (int i = 0 ; i< 3; i++){ if(buffer[i]) cout