728x90
728x90

알고리즘 246

백준] 10451 - 순열 사이클(ACM-ICPC Regionals Daejeon)

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 순열의 크기 N (2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 순열이 주어지며, 각 정수는 공백으로 구분되어 있다. 출력각 테스트 케이스마다, 입력으로 주어진 순열에 존재하는 순열 사이클의 개수를 출력한다. 소스코드#include #include using namespace std; vector arr; vector check; void sequence(int idx) { if (check[idx] == false) { check[idx] = true; sequence(arr[idx]); } else return; } int main(void) { int T; cin >..

백준] 1406 - 에디터(CHCI 2004)

시간 제한 : 0.3초메모리 제한 : 512MB 입력첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수를 나타내는 정수 N(1≤N≤500,000)이 주어진다. 셋째 줄부터 N개의 줄에 걸쳐 입력할 명령어가 순서대로 주어진다. 명령어는 위의 네 가지 중 하나의 형태로만 주어진다. 출력첫째 줄에 모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 출력한다. 소스코드#include #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cout.tie(NULL); st..

백준] 14582 - 오늘도 졌다(2017 고려대학교 프로그래밍 대회)

시간 제한 : 1초메모리 제한 : 64MB 입력첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다.두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 말, 2회 말, ..., 9회 말에 낸 득점이 주어진다.한 팀이 한 회에 낸 득점은 모두 0 이상 20 이하이며, 스타트링크 걸리버스의 총 득점이 울림 제미니스의 총 득점보다 많다.경기는 1회 초->1회 말->2회 초->...->9회 초->9회 말 순서로 진행된다. 출력만약 울림 제미니스가 역전패를 했다면 'Yes'를 출력한다.그렇지 않으면 'No'를 출력한다 소스코드#include #include using namespace std; int main(voi..

백준] 1351 - 무한 수열

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 3개의 정수 N, P, Q가 주어진다. 출력첫째 줄에 A_N을 출력한다. 소스코드#include #include using namespace std; map dp; long long recursive(long long N, long long& P, long long& Q) { if (N == 0) return 1; else if (dp[N]) return dp[N]; return dp[N] = recursive(N / P, P, Q) + recursive(N / Q, P, Q); } int main(void) { long long N, P, Q; cin >> N >> P >> Q; cout

백준] 1598 - 꼬리를 무는 숫자 나열

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 숫자는 10,000,000 이하이다. 출력첫째 줄에 원숭이가 생각한 두 개의 자연수 사이의 직각거리를 출력한다. 소스코드#include #include using namespace std; int main(void) { int x, y, xw, yw, xh, yh; cin >> x >> y; xw = (x - 1) / 4; yw = (y - 1) / 4; xh = (x-1) % 4; yh = (y-1) % 4; cout

백준] 2890 - 카약(COCI 2009/2010)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 R과 C가 주어진다. 다음 R개 줄에는 '.', 'S', 'F', '1'~'9'로 이루어진 위성 지도가 주어진다. 한 줄에는 최대 한 개의 카약만 있고, 위성 사진에 있는 카약은 항상 9개이다. (10 ≤ R, C ≤ 50) 출력출력은 총 9줄을 해야 한다. i번째 줄에는 i번 팀의 등수를 출력한다. (i=1~9) 소스코드#include #include #include #include using namespace std; struct team { int id; int distance; int rank; }; bool compareDistance(const struct team a, const struct team b) { if (a.distanc..

백준] 9469 - 폰 노이만(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 테스트 케이스의 개수 P (1 ≤ P ≤ 1000)가 주어진다.각 테스트 케이스는 다섯 숫자 N, D, A, B, F이루어져 있다. N은 테스트 케이스의 번호이고, D는 철로의 길이 (10 ≤ D ≤ 1000), A와 B는 두 기차의 속도 (1 ≤ A, B ≤ 30), F는 파리의 속도 (A ≤ B < F ≤ 50)이다. D, A, B, F는 실수이다. 실수는 최대 소수점 둘째자리까지 주어진다. 출력각 테스트 케이스마다 테스트 케이스 번호를 출력하고, 두 기차가 충돌할 때까지 파리가 움직인 거리를 출력한다. 절대/상대 오차는 10^-2까지 허용한다. 소스코드#include using namespace std; int main(void) { int..

백준] 3029 - 경고(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다.둘째 줄에는 나트륨을 던질 시간이 위와 같은 형식으로 주어진다. 출력첫째 줄에 정인이가 기다려야 하는 시간을 입력과 같은 형식으로 출력한다. 소스코드#include #include using namespace std; int main(void) { string start, end; int s[3], e[3], ans[3]; cin >> start; cin >> end; s[0] = stoi(start.substr(0, 2)); s[1] = stoi(start.substr(3,..

728x90