본문 바로가기

전체 글

[토요라운드] 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 .. 더보기
[토요라운드] 20/12/05 후기 골드 빼고 다 풀었다~~~~ 잘 기억 안 나지만 푼 순서 대충 적어보면 - ~ 00:10 A번 해결 - ~ 00:20 B번 고민하다가 나중에 더 고민하면 풀 수 있을 것 같아서 패스 - ~ 00:30 C번 해결 - ~ 00:50 D번 해결 - 잠시 부모님 호출로 인해 20분정도 다녀옴 - ~ 01:40 E번 해결 - ~ 01:55 B번 해결 이런 순서로 푼 것 같다. 족금 쉬운 것 같아서 div1넘어갈까 고민중. 요즘 머리 안 쓰고 날먹문제만 뽑아먹는 것 같음. 더보기
15970 화살표 그리기 이전에 풀었던 문제인 것 같은데 안 풀었네?? 먼저 색깔별로 저장하는 배열을 만들어 두고 색깔별로 위치를 입력 받는다. 그다음 최소 길이를 구해야 하므로 각 배열을 정렬한 다음 최소 길이를 구하는 방식으로 구현했다. 그리고 점이 하나인 경우는 화살표를 만들 수 없으므로 패스하면 끝~! #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; .. 더보기
1927 최소 힙 날먹문제... pq 사용해서 풀었다 #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 n; scanf("%d", &n); priority_queue pq; for (int i = 0; i < n; i++) {.. 더보기
2607 비슷한 단어 ㅇㄴㅠ 이게 몇 번째 실수야 cin.tie 쓸거면 scanf 쓰지 말라고!!!! 이 문제 때문에 계속 틀렸었다. 암튼 경우를 구해보면 - 한 단어에서 한 문자를 더하거나 - 한 단어에서 한 문자를 빼거나 - 하나의 문자를 다른 문자로 바꾸어 나머지 한 단어와 같은 구성을 갖게 되는 경우 그래서 한 문자를 더하거나 빼는 경우를 먼저 확인해주고 그다음으로 문자를 바꾸는 경우를 확인해줬다. 간단한 것 같은데 왜이리 애먹냐 #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all.. 더보기
11660 구간 합 구하기 5 오 전에 풀었던 거.. 기억난다 인덱스 조금 헷갈려 #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; i64 mapv[1030][1030]; int main() { int n, m; scanf("%d %d", &n, &m); for (in.. 더보기