https://www.acmicpc.net/problem/5214
풀이: s[i] : i 번째 하이퍼 튜브에 연결 되어 있는 모든 역
v[i] : i 번 역이 들어있는 하이퍼 튜브
1부터 bfs를 돌아 N번째 역에 도착할 때 지나온 역의 갯수를 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include <iostream>#include <vector>#include <queue>using namespace std; int n, m, k, i, t, w, d, c[1005], b[100005] = { 1,1 }; int main() { cin >> n >> k >> m; vector<vector<int>> s(m + 1), v(n + 1); queue<int> q; for (q.
https://www.acmicpc.net/problem/2589
풀이: 모든 L을 전부 찾는다.
현재 L에서 최단 거리로 가장 먼 거리가
현재 저장된 거리보다 크다면 현재 저장된 거리를 바꾼다.
최대 거리를 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <iostream>#include <queue>using namespace std; int n, m, i, t, s, y; string c[55]; int main() { cin >> n >> m; for (; i < n; i++) cin >> c[i]; for (i = 0; i < n; i++) for (t = 0; t < m; t++, s = y - 1 > s ?
https://www.acmicpc.net/problem/5014
풀이: 현재 층 S부터 +U, -D 를 하며 모든 층을 찾아간다.
만약 찾는 층에 도달했다면 버튼을 몇 번 눌렀는지 출력한다.
만약 1 ~ F 층까지 갈 수 있는 모든 층을 가봤지만 G층에 도달 할 수 없다면, “use the stairs"를 출력한다.
S가 G와 같다면 0을 출력한다.
1층 부터 시작이므로 주의하자. (0층은 없다.)
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <iostream>#include <queue>using namespace std; int F, S, G, U, D, i, s, a, b[1000005]; int main() { cin >> F >> S >> G >> U >> D; queue<int> q; q.
https://www.acmicpc.net/problem/2929
풀이: 만약 머신 코드의 명령(대문자) 이 들어왔는데, 그 위치가 4의 배수가 아니라면,
4의 배수가 될 때까지 NOP의 갯수를 증가시킨다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 #include <iostream>using namespace std; int i, c; string s; int main() { cin >> s; for (i = 0; i < s.size(); i++) while (isupper(s[i]) && (i + c) % 4 != 0) c++; cout << c << endl; }