UCPC 썸네일형 리스트형 [20/05/24] I 모노디지털 표현 (2287) #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define mod 1000000009 using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; int main() { int k; scanf("%d", &k); set s[12]; int kk = k; s[1].insert(kk); for (int i = 2; i 더보기 [20/05/24] E 제곱근 작도 (5389) 오! 신기하다. 피타고라스 정리까지는 알겠는데 그 다음 어떻게 할지 막혔었다. 이걸 인수분해 하면 저렇게 곱 형식으로 나타낼 수 있는데 이걸 약수라 생각하고 풀면 된다! 손코딩을 먼저 해봤다 #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define mod 1000000009 using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; int main() { int t; scanf("%d", &t); for (int k = 0; k < t; k++.. 더보기 [20/05/24] D 차량 번호판 2 (16969) 엇 간단한 문제였다 같은 문자가 연속으로 있을 때 처음에는 26곱해주고 다음 문자부터는 25 곱해주면 된다. 문제 풀다가 mod로 나누는 거에 궁금한 게 생겼다. ans = a * b * c; 라고 했을 때 a%mod * b%mod 이런 식으로 각각 해야하는지 아니면 (a * b) % mod 로 해야 하는지? 이건 상관없고 overflow가 날 것 같으면 각각 mod 취해주고 날 것 같지 않으면 다 계산 후 결과로 mod 취해주면 된다. 그런데 + 같은 경우는 int로 해도 터지지 않고 곱셈 같은 경우는 i64 쓰면 된다! 문제 해결 ~.~ #include #include #include #include #include #include #include #include #include #include #d.. 더보기 [20/05/24] B 겉넓이 구하기 (16931) 상자 하도 쌓아서 상자문제는 조금 자신 있음ㅋㅋ 난 앞뒤양옆에서 봤을 때 개수를 더했는데 이 방법 말고 각 상자에 대해서 높이 차로 구하는 방법이 있었다 #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; int main() { int n, m; scanf("%d %d", &n, &m); vector v(n, vector(m)); for (int i = 0; i < n; i++) for (int.. 더보기 [20/05/24] J 피보나치 인버스 (10425) 이런 건 또 어떻게 풀까 싶었는데 전처리..! 미리 해싱해놓고 Fn 받아서 n 출력하면 된다. 어메이징!! 이것도 안보고 다시 풀어봤다. #include #include #include #include #include #include #include #include #include #include #define mod ((i64)1e10) using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; int main() { map m; i64 n1 = 0; i64 n2 = 1; m[1] = 1; for (int i = 2; i > s; i64 search; if (s.size() > 10) search = stoll(s.su.. 더보기 [20/05/24] I 팬케이크 쌓기(12744) 처음에 나름 규칙 찾았다고 기뻐했는데 아니었음ㅋㅋ 알고보니 완전탐색으로 하나하나 뒤집어 보면 해결된다. BFS 사용해서 하면 된다고 해서 다른 문제 풀려고 했는데 결국 BFS와 마주해야 했습니다 이것도 코드 안 보고 다시 짜봐야지 기억나는 게 - 뒤집는 함수 - 옳은지 확인하는 함수 - 큐로 다음 확인할 부분 저장 - pair로 하나는 n저장 하나는 +,- 저장 음.. 이정도? 함 짜봐야 겠다 bool check(vector v) { for (int i = 1; i 더보기 [20/05/24] H 색칠공부(17092) 아이고 이 문제 풀면서 이마를 하도 쳐서 거북목이 나았다 내 구현 능력이 안 좋은 걸 실감하게 했던 문제 스터디 하면서 계속 이걸 왜 못짜지??? 생각 들더라 어떻게 풀지는 이해했다 h, w가 10^9라 일일이 탐색할 수 없으니 검은 점을 기준으로 해당 점을 가지는 사각형의 위치에 값을 더해주자! 그런데 이걸 코드로 구현하는 부분에서 머리가 안 돌아가더라 거의 떠먹이다 싶히 풀었음 하지만 이 당시에는 마음이 너무 급해서 제대로 이해도 못하고 그냥 제출했다. 이제 다시 분석하니 알겠음ㅋㅋ 이까지는 스터디 때 이해했다. 사각형을 구분 하는 건 저 왼쪽 위 좌표를 기준으로 하겠다 그런데 점 개수 구하는데서 막혔음ㅋㅋ 점을 추가할 때 자기 자신을 기준으로 상하좌우대각선 사각형에 값을 추가해야 하는데 그럼 x-1.. 더보기 [20/05/17] L. MaratonIME doesn't like odd numbers #include #include #include #include #include #include #include #include #include #include using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; #define xx first #define yy second int main() { int n; scanf("%d", &n); vector v(n); for (int i = 0; i < n; i++) scanf("%d", &v[i]); int min_odd = 99999; i64 sum = 0; for (int i = 0; i < n; i++) { if (v[i]%2 == 1 && v[i] < min_o.. 더보기 이전 1 2 3 4 5 다음