반응형

문제 출처 :


https://www.acmicpc.net/problem/14710



알고리즘 분석 :


문제 해결에 필요한 사항

1. 구현


개인적으로 신기한 문제였다.


문제 해결은 아래와 같이 하면 된다.


분침이 1도 지날 때 마다 시침은 1/12도 지난다. (시계를 보고 계산을 해보면 알 수 있다. 예를들어 12분이 지나야 시침이 1분 다음칸으로 갈 수 있다.)


이 문제를 double형으로 해결하려 했으나 어떤 이유인지는 몰라도 해결이 되지 않았다. 아마 부동 소수점 문제인듯 하다.


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>
#include <cstdio>
#include <cmath>
 
using namespace std;
 
bool chk[500][500];
 
int main()
{
    int a, b;
    scanf("%d %d"&a, &b);
 
    double h = 0, m = 0;
    while (1)
    {
        double tmp = floor(h);
        if((int)h == (int)tmp)
            chk[(int)h][(int)m] = true;
 
        m += 1.0;
        h += (double)/ 12;
 
        if (m >= 360.0)
            m = 0.0;
        if (h >= 360.0)
            break;
    }
 
    if (chk[a][b])
        printf("O");
    else
        printf("X");
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus



위의 코드와 정답 코드를 보면 단순히 double에서 int로 변환시키는 작업밖에 없지만, floor함수와 double자료형에서 뭔가 차이가 나는 듯 하다.


이 외에 수학적으로 푸는 다른 방법도 존재하는 것 같았다.(맞은 사람 코드를 본 결과로..)














소스 코드 : 


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
#include <iostream>
#include <cstdio>
 
using namespace std;
 
bool chk[5000][5000];
 
int main()
{
    int a, b;
    scanf("%d %d"&a, &b);
 
    int h = 0, m = 0;
    while (1)
    {
        if(h % 12 == 0)
            chk[h][m] = true;
        
        m += 12;
        h += 1;
 
        if (m >= 360*12)
            m = 0;
        if (h >= 360*12)
            break;
    }
 
    if (chk[a*12][b*12])
        printf("O");
    else
        printf("X");
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

카카오 모의 테스트 풀이(주소 수록)  (0) 2017.09.15
[14699번] 관악산 등산  (0) 2017.09.15
[14709번] 여우 사인  (0) 2017.09.15
[1981번] 배열에서 이동  (0) 2017.09.12
[2417번] 정수 제곱근  (0) 2017.09.11