[C#]백준문제풀이/조건문
백준_C#_2884
이원혁
2022. 11. 30. 15:14
반응형
쉽게 차근히 생각하면 잘 풀리는 문제인데 예외처리를 확실히 하지 않거나 놓치는 부분이 생기면 여지없이 몇번 틀리는 문제입니다.
풀이법은 일단 코딩을 하기 전에 생각을 먼저 했습니다.
단순히 순서대로 생각하게되면
1. M(분)에서 45를 뺄 경우-> M이 45이하일 경우 음수가 나오게 됨 -> 틀림
2. M이 45 이하일 경우에 H(시간)을 하나 빼고 60을 빌려와서 계산을 하는 예외 처리를 해줘서 해결 -> 시간이 0시 일 경우 음수가 나옴 -> 틀림
3. 0 = 24(시간개념)으로 바꿀경우 정답에 다다르는 과정을 거쳤습니다.
이를 코드로 표현하게 되면
string[] a = Console.ReadLine().Split();
int H = int.Parse(a[0]); //시간
int M = int.Parse(a[1]); //분
if (H > 0 && M >= 45) //분에서 바로 45분을 뺄 수 있는 경우
Console.Write(H + " " + (M - 45));
if (H > 0 && M < 45) // 시간에서 60분을 빌려와서 해결 가능한 경우
Console.Write((H - 1) + " " + (M + 15));
else if (H < 1 && M >= 45) // 0시이지만 분만 빼서 해결 가능
Console.Write((H) + " " + (M - 45));
else if (H < 1 && M < 45) // 0시 이면서 분을 빌려와야 할 경우(23시)
Console.Write((H + 23) + " " + (M + 15));
이렇게 해결했는데 초창기에 풀었던 문제로 지금 다시푼다면 조금 더 정리 할 수 있고 조금 더 빠르게 정확하게 풀 수 있다고 생각이 드는 것으로 보아 어느정도는 실력이 늘었다고 생각이 드는 것 같습니다.
반응형