Notice
Recent Posts
Recent Comments
:: ADVANCE ::
[dovelet][다중 반복문] lock (lock) 본문
반응형
dovelet 4 단계 다중 반복문
http://59.23.113.171/30stair/lock/lock.php?pname=lock
1차 풀이
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 |
#include <iostream>
using namespace std;
int main(void)
{
int start, one, two, three, angle;
while(1) {
angle = 1080;
cin >> start >> one >> two >> three;
if((start + one + two + three) == 0) {
return 0;
}
while(start != one) {
start--;
if(start < 0) {
start = 39;
}
if(start == 40) {
start = 0;
}
angle += 9;
}
while(one != two) {
one++;
if(one < 0) {
one = 39;
}
if(one == 40) {
one = 0;
}
angle += 9;
}
while(two != three) {
two--;
if(two < 0) {
two = 39;
}
if(two == 40) {
two = 0;
}
angle += 9;
}
cout << angle << endl;
}
return 0;
} |
2차 풀이
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 32 33 34 35 36 37 38 | #include <iostream> using namespace std; #define ang 9 int abs(int n, int m) // 시작 눈금, 도착 눈금 { if (n > m) { return n - m; } else { return 40 - m + n; } } int main(void) { int number[4], i, cnt; for (i = 0; i < 4; i++) { cin >> number[i]; } while (number[0] + number[1] + number[2] + number[3] != 0) { // 0 0 0 0이 입력으로 들어오면 종료하기 위해 cnt = abs(number[0], number[1]) + abs(number[2], number[1]) + abs(number[2], number[3]); // 시계방향 반시계방향 시계방향 cout << 360 * 3 + ang*cnt << endl; for (int i = 0; i < 4; i++) { cin >> number[i]; } } return 0; } | cs |
3차 풀이
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 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <iostream> using namespace std; #define ang 9 int main(void) { int number[4], i, cnt; for (i = 0; i < 4; i++) { cin >> number[i]; } while (number[0] + number[1] + number[2] + number[3] != 0) { cnt = 0; for (i = number[0]; i != number[1]; i--) { if (i == 0) { i = 40; } cnt++; } for (; i != number[2]; i++) { if (i == 39) { i = -1; } cnt++; } for (; i != number[3]; i--) { if (i == 0) { i = 40; } cnt++; } cout << 360 * 3 + ang*cnt << endl; for (int i = 0; i < 4; i++) { cin >> number[i]; } } return 0; } | cs |
반응형
'Algorithm > 구현 | ETC' 카테고리의 다른 글
[dovelet][다중 반복문] 세 거듭제곱 (cube) (0) | 2014.09.22 |
---|---|
[dovelet][다중 반복문] 3*n + 1의 최대 길이 (3nplusone) (0) | 2014.09.22 |
[dovelet][다중 반복문] 친구 수 (amicable) (0) | 2014.09.22 |
[dovelet][다중 반복문] 설탕 공장 (sugar) (0) | 2014.09.17 |
[dovelet][다중 반복문] 오실로스코프(별) (oscilloscope) (0) | 2014.09.16 |
Comments