-
1032 명령 프롬프트/1085 직사각형에서 탈출/1259 팰린드롬수/15829 HashingAlgorithm/baekjoon 2022. 2. 14. 11:26
1. 1032 명령 프롬프트
https://www.acmicpc.net/problem/1032
#include<iostream> #include<cstring> using namespace std; char arr[5][15]; int main() { cin.tie(NULL); cin.sync_with_stdio(false); int forn; cin >> forn; string *orders=new string [forn]; for (int i = 0; i < forn; i++) { string str1; cin >> str1; orders[i] = str1; } string output=""; for (int j = 0; j < orders[0].size(); j++) { char a; bool flag = true; for (int k = 0; k < forn; k++) { if(k==0)a = orders[k][j]; else if (a != orders[k][j]) { flag = false; } } if (flag) output += a; else output += "?"; } delete[] orders; cout << output; }
2.1085 직사각형에서 탈출
https://www.acmicpc.net/problem/1085
1085번: 직사각형에서 탈출
한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> using namespace std; char arr[5][15]; int main() { cin.tie(NULL); cin.sync_with_stdio(false); int x, y, w, h; cin >> x >> y >> w >> h; cout<<min({ x, w - x ,y,h-y}); }
3.1259 팰린드롬수
https://www.acmicpc.net/problem/1259
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<string> using namespace std; char arr[5][15]; int main() { cin.tie(NULL); cin.sync_with_stdio(false); while (true) { string a; cin >> a; bool flag = false; if (a == "0") break; string backstr; if (a.size() % 2 == 0) { backstr = a.substr(a.size() / 2, a.size() / 2); reverse(backstr.begin(), backstr.end()); if (a.find(backstr) == 0) flag = true; } else { backstr = a.substr(a.size() / 2+1, a.size() / 2); reverse(backstr.begin(), backstr.end()); if (a.find(backstr) == 0) flag = true; } if (flag) cout << "yes\n"; else cout << "no\n"; } }
4. 15829 Hashing
https://www.acmicpc.net/problem/15829
자꾸 50점이 떠서 킹받았다...
큰 수를 다룰 때 예외가 떠서 그런 것 같은데....
두 수를 곱해서 M으로 나눈 나머지와
각각의 수를 M으로 나눈 나머지를 곱해서 M으로 나눈 나머지가 같다는 성질을 활용해서
큰 수를 다루어 주었다.
아무튼 이번문제는 구글링의 도움을 받았다.
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<string> #include<cmath> using namespace std; long long length; string str; long long r = 31; long long m = 1234567891; long long sum = 0; int main() { cin.tie(NULL); cin.sync_with_stdio(false); cin >> length >> str; for (long long i = 0; i < length; i++) { long long r = 1; for (int j = 1; j <= i; j++) { r *= 31; if (r > m) r = r % m; } sum += (long long)(str[i] - 96)*r; if (sum > m) sum = sum % m; } cout << sum; }
'Algorithm > baekjoon' 카테고리의 다른 글
1978 소수 찾기/2609 최대공약수와 최소공배수 (0) 2022.02.19 1181 단어 정렬/11650 좌표 정렬하기/11651 좌표 정렬하기2/2750 수 정렬하기/10989 수 정렬하기3/10814 나이순 정렬 (0) 2022.02.18 2167 이차원 배열의 합/10798 세로읽기 (0) 2022.02.13 2161 카드1 (0) 2022.02.12 1924 2007년 (0) 2022.02.12