본문 바로가기

prompt

Round 171 시도했던 문제 - B. 수강변경 https://www.acmicpc.net/problem/23305 - C. 눈덩이 굴리기 https://www.acmicpc.net/problem/23305 - D. 2xN 예쁜 타일링 https://www.acmicpc.net/problem/18230 수강변경 - 성공 먼저 바꾸고자 하는 수업 개수를 전부 센다. 다음으로 바꾸고싶은 수업이 있으면 count-- 한다. 수업 개수가 이미 0이라면 원하는 수업을 수강하지 못하는 학생이므로 ans++ 한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu.. 더보기
Round 172 시도했던 문제 - D. 초콜릿 피라미드 https://www.acmicpc.net/problem/25793 - E. 프린트 전달 https://www.acmicpc.net/problem/23887 초콜릿 피라미드 수학... 문제였다. 한 층을 채운다고 하면 아래와 같이 식을 세울 수 있다. w: r * c + (r - 1) * (c - 1) b: (r - 1) * c + r * (c - 1) 식을 조금 더 정리하면 이렇게 된다. w: 2 * r * c - (r + c) + 1 b: 2 * r * c - (r + c) 고민해봐야 할 부분은 여러 층을 쌓아야 하는데... 예시의 2 * 3을 들면 (2 * 3) + (1 * 2)를 해야 하고, 9 * 3인 경우 (9 * 3) + (8 * 2) + (7 * 1).. 더보기
2021 연말대회 후기 올해도 연말 대회를 나갔다. 처음에 오프라인이어서 지나랑 같이 나가서 저녁을 먹을 예정이었는데 고로나 때문에 온라인으로 바뀌고 그냥 카페가서 문제 풀려고 했다. 근데 문제는 팀이 랜덤이었다ㅠ 팀 나눠지면 그냥 따로 앉아서 해야긋다... 생각했는데 다행히 같은 팀이 됐다. 대학 합격한 것마냥 카페에서 소리질렀다. 지나랑 환경 세팅하고 바로 문제 풀었다. 일단 문제 훑어봐야지~ 했는데 지나 이름이 나오는 문제랑 내 이름 나오는 문제 보고 각자 이름 나오는 문제부터 봤다. 대부분의 문제가 서브테스크로 되어 있어서 우리 팀은 긁자...! 긁어 모으자...! 결심하고 풀었다. 지나가 2번 문제 보는 동안 나는 4번 문제 좀 읽고 못 풀 것 같아서 1번으로 넘어갔다. 뭔가 더 빠르게 풀 수 있을 것 같았는데 생각이.. 더보기
[토요라운드] E. 컴백홈 (1189) 처음에 DFS BFS를 떠올리긴 했는데 그래도 구현 불가능 할 것 같았다. 고민하다가 R S 사이즈가 5 이하인 거 보고 재귀로 짜면 되겠다 싶었음 함수에 인자로 x, y, cnt 넣고 해당 위치 visited true로 둔 다음, 다음 위치 호출할 때는 x + 1, y, cnt + 1 이런 식으로 호출하고 다 끝나면 다시 visited = false로 두기.. 이렇게 구현했다. #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x)... 더보기
[토요라운드] D. 에너지 드링크 (20115) 작은 걸 나눠서 합칠지 / 큰 걸 나눠서 합칠지 결정해야 했는데 직접 적어보면 작은 걸 나눠서 합치는게 유리하다. 그래서 정렬한 다음 작은거 합침 -> 또 합침 .. -> 합침 도미노처럼 합치는 모양으로 구현했지만 예시가 달랐다. 알고보니 이렇게 말고 가장 큰 거에 나머지 작은 거를 합쳐야 했었다. 풀이는 쉬웠음 #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 =.. 더보기
[토요라운드] C. 중간고사 채점 (15702) pair 써서 구하면 될 것 같았다. 하나는 점수 저장하고 하나는 사람 번호 저장해서 정렬하면 끝~ 점수를 먼저 정렬해야 하니 점수를 xx로 두고 정렬했다. 문제가 있다면 번호는 작은 순서대로 정렬해야 하는데 오름차순으로 하면 번호가 큰 사람이 먼저 나온다. 그래서 번호를 -1 곱해서 저장한 다음 마지막에 -1 다시 곱해서 출력하는 방식으로 구현했다. 이전에 북님 이렇게 한 거 보고 기발하다 생각했는데 이렇게 써먹네ㅋㅋㅋ 덕분에 쉽게 풀었다. #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy sec.. 더보기
[토요라운드] B. 2의 제곱수 계산하기 (19946) 문제가 너무 어려워 보였음... 64번 곱하기... 게다가 long long 범위도 벗어남.. 그래서 처음에 어떻게 할지 생각하다가 고민 좀 더 하면 풀 수 있을 것 같아서 미뤄두고 나중에 다시 풀었다. 가장 단순하게 생각했다. 0번째에 실수한 경우 1번째.. 64번째에 실수한 경우 전부 저장해두자! 그리고 입력값이랑 비교해서 일치하는 걸 찾는거지. 문제는 longlong보다 큰 수가 나와서 범위를 벗어나는 건데.. 이건 이전에 풀었던 피보나치 수 문제에서 도움을 받았다. 이전에 피보나치 순열 푸는 (잘 기억 안 난다) 문제가 있었는데 이 문제를 해시를 써서 풀었다. 해시 키 값은 마지막 10자리를 기준으로 해서 풀었다. 이 때 실수로 겹치는 수가 있으면 어카지?? 생각했는데 10자리면 겹치는 일 없다고.. 더보기
[토요라운드] A. 폰 노이만과 파리 (14924) 문제 길어서 음~ 패스하고 식만 줘~ 하다가 숫자들이 의미하는 값 몰라서 다시 처음부터 읽었다. 그래도 빠른 해결 함 #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using ii64 = pair; using iii = tuple; int main() { int s, d, t; scanf("%d %d .. 더보기