본문 바로가기
백준/단계별

백준 2884 C#) 알람 시계

by alpacadabra 2022. 4. 17.

설명 그대로 주어진 시간을 45분 당기기만 하면 된다.

 

//1
string[] hm = Console.ReadLine().Split();
int h = int.Parse(hm[0]);
int m = int.Parse(hm[1]) - 45;

if (m < 0)
{
    if (--h < 0) h = 23;
    m += 60;
}

Console.Write("{0} {1}", h, m);


//2
DateTime dt = DateTime.ParseExact(Console.ReadLine(), "H m", null).AddMinutes(-45);
Console.Write("{0} {1}", dt.Hour, dt.Minute);

 

아무래도 시간을 당기기만 하면 되는 문제라 2번 코드보다는 1번 코드가 더 가볍고 빠를 것이다.

다만 직관성은 2번 코드가 더 뛰어나 보인다.

 

참고로 DateTime.Parse는 정해진 형식이 아니면 오류가 발생하므로 주어진 문자열을 특정 형식으로 변경하거나 위 코드처럼 DateTime.ParseExact를 통해 입력 형식을 직접 지정해줘야 한다.

'백준 > 단계별' 카테고리의 다른 글

백준 15552 C#) 빠른 A+B  (0) 2022.04.18
백준 2739 C#) 구구단  (0) 2022.04.17
백준 14681 C#) 사분면 고르기  (0) 2022.04.17
백준 9498 C#) 시험 성적  (0) 2022.04.17
백준 2753 C#) 윤년  (0) 2022.04.17

댓글