728x90
문제 이해하는데 좀 걸렸다. (어휘력을 길러야될 것 같음....😒 책 읽어야 돼 책)
결과적으로는 단순풀이법으로 아래와 같이 풀이를 했는데.
이 때 while 구문에서 if로 풀이하면 안 된다.
아래와 같은 Testcase의 경우에는 fail이 나기 때문.
"1곡 재생, 한 곡당 7초 길이, 2초마다 벨이 울릴 경우"
알고리즘 : 단순 구현, 시뮬레이션
string[] NLD = Console.ReadLine().Split(' ');
int N = int.Parse(NLD[0]);
int L = int.Parse(NLD[1]);
int D = int.Parse(NLD[2]);
// 침묵의 구간
int[] fadeRange = { L, L + 5 };
// 벨이 울리는 시간(초)
int secOfLastRing = D;
for (int i = 0; i < N; i++)
{
// 침묵의 구간 시작점보다 벨이 울리는 시간(초)가 빠르다면
// 구간 내에 진입할 때까지 벨이 울린다.
while (fadeRange[0] > secOfLastRing)
secOfLastRing += D;
if (secOfLastRing < fadeRange[0] || secOfLastRing >= fadeRange[1])
{
fadeRange[0] = fadeRange[1] + L;
fadeRange[1] = fadeRange[0] + 5;
}
else
break;
}
728x90
728x90
'코딩테스트 > 백준' 카테고리의 다른 글
[1541] 잃어버린 괄호(C#) (0) | 2022.05.20 |
---|---|
[1459] 걷기(C#) (0) | 2022.05.18 |
[2748] 피보나치 수 2(C#) (0) | 2022.04.07 |
[10989] 수 정렬하기3(C#) (0) | 2022.03.30 |
[18014] 나이순 정렬(C#) (0) | 2022.03.30 |