본문 바로가기

백준

10250 ACM 호텔 택시기하학의 영향으로 처음에 기하학문제인줄 알았다. 그런데 문제를 읽어보니 엘리베이터가 있고 가장 아래쪽에서 방을 차지하기 때문에 사진과 같은 순서로 방이 찬다고 생각했다. 이렇게 하면 조건에 맞게 채워질 줄 알았음 #include int main() { int t, h, w, n; scanf("%d", &t); for(int i = 0; i < t; i++){ scanf("%d %d %d", &h, &w, &n); printf("%d%02d\n", n%h, n/h + 1); } } 그래서 코드를 이렇게 짰다. 한 줄 입력받아 한 줄 출력하게끔 하고, 몫과 나머지를 구하는데 한자리 수를 출력할때는 0을 붙여야 하므로 %02d를 사용했다. 그리고 예제 입력을 돌려봤는데 그대로 나왔다. 하지만 실패..ㅎㅎ .. 더보기
2455 지능형 기차 알고리즘을 이렇게 생각해서 #include #include using namespace std; using i64 = long long; int a[1000000]; int main() { int a1, a2, a3, a4; //내린 사람 int b1, b2, b3, b4; //탄 사람 scanf("%d %d %d %d %d %d %d %d", &a1, &b1, &a2, &b2, &a3, &b3, &a4, &b4); int max = b1; int sum = b1; sum += b2 - a2; if(sum > max) max = sum; sum += b3 - a3; if(sum > max) max = sum; printf("%d", max); } 이렇게 코딩했다. 지금 든 생각인데 그냥 배열 만들어서 반.. 더보기
13458 시험 감독 #include #include using namespace std; int a[1000000]; int main() { int n, b, c; int sum = 0; scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &a[i]); scanf("%d %d", &b, &c); for(int i = 0; i < n; i++) sum += (max(a[i]-b, 0)+c-1)/c + 1; printf("%d", sum); } 열심히 알고리즘을 짰고 기분좋게 돌렸는데 틀렸다! 심지어 입력예시 다 돌려봤는데 에러도 안 떴는데! #include #include using namespace std; using i64 = long long; int a[1000000];.. 더보기
2869 달팽이는 올라가고 싶다 애증의 달팽이 문제.. 저렇게 했는데 틀려서 다시 알고리즘 짜봤다 근데 또 똑같은 알고리즘이 나왔다. 알고보니 (a-b)만큼 n일을 올라가고 마지막 낮에 a만큼 올라가므로 1을 더해줘야 한다. 해결~~ 이번에는 올림을 잘 사용해줬다. 더보기
2443 별 찍기 - 6 #include int main() { int n; scanf("%d", &n); for(int i = 0; i < n; i++){ for(int j = 0; j 더보기
2884 알람 시계 처음에 이렇게 짰다. 근데 돌려보니 값이 그대로 나오는게 아닌가 시간에만 집중한 나머지 45를 빼지 않았다. 그렇다 이제는 시간 계산에 익숙하다 #include int main() { int h, m; scanf("%d %d", &h, &m); int sum = h*60 + m - 45; if(sum < 45) sum += 24*60; printf("%d %d", (sum)/60%24, (sum)%60); } 더보기
10817 세 수 전에 이 문제를 푼 적이 있었다. 그 때는 조건문 여섯개 써가지고 구했는데 이번에는 우선순위 큐를 써봤다. max, min으로는 못 구하려나 생각 했지만 이것보다는 큐가 더 나아보여서 큐로 짰다. #include #include using namespace std; int main() { priority_queue pq; int a, b, c; scanf("%d %d %d", &a, &b, &c); pq.push(a); pq.push(b); pq.push(c); pq.pop(); printf("%d", pq.top()); } 간단하다. 큐에 넣으면 가장 큰 값이 앞으로 가므로 큐에 값을 다 집어넣고 하나를 빼주면 두번째 값이 맨 앞에 온다. 더보기
2439 별 찍기 - 2 별찍기 저런식으로 적으면서 하면 쉽다 #include int main() { int n; scanf("%d", &n); for(int i = 1; i 더보기