using System;
using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace _3186 { class Program { public enum Status { Using, UsingReady, idle, NON } static void Main (string[] args) { string[] input = Console.ReadLine().Split(' '); int userCheckTime = int.Parse(input[0]); int completeTime = int.Parse(input[1]); int timeLength = int.Parse(input[2]); Status stat = Status.NON; string timeInput = Console.ReadLine(); int timeCount = 0; int timeCheck = 0; bool isFlush = false; for(int i=0; i<timeLength; i++) { if(timeInput[i] == '1') { //if(stat == Stat) { // stat = Status.UsingReady; // timeCount = 0; // timeCheck = 1; //} else if(stat == Status.UsingReady) {
//} timeCount = 0; timeCheck++; if (timeCheck >= userCheckTime) { stat = Status.Using; } } else { if(stat == Status.NON) { continue; } stat = Status.idle; timeCount += 1; timeCheck = 0; if(timeCount >= completeTime) { Console.WriteLine(i + 1); stat = Status.NON; isFlush = true; } } } if(stat == Status.idle) { isFlush = true; Console.WriteLine(timeLength + completeTime - timeCount); } else if(stat == Status.Using) { isFlush = true; Console.WriteLine(timeLength + completeTime); } if(!isFlush) { Console.WriteLine("NIKAD"); } } }}
문제번호가 없어서 알려드릴 수 없습니다.
댓글을 작성하려면 로그인해야 합니다.
huseong2 6년 전
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _3186 {
class Program {
public enum Status {
Using, UsingReady, idle, NON
}
static void Main (string[] args) {
string[] input = Console.ReadLine().Split(' ');
int userCheckTime = int.Parse(input[0]);
int completeTime = int.Parse(input[1]);
int timeLength = int.Parse(input[2]);
Status stat = Status.NON;
string timeInput = Console.ReadLine();
int timeCount = 0;
int timeCheck = 0;
bool isFlush = false;
for(int i=0; i<timeLength; i++) {
if(timeInput[i] == '1') {
//if(stat == Stat) {
// stat = Status.UsingReady;
// timeCount = 0;
// timeCheck = 1;
//} else if(stat == Status.UsingReady) {
//}
timeCount = 0;
timeCheck++;
if (timeCheck >= userCheckTime) {
stat = Status.Using;
}
} else {
if(stat == Status.NON) {
continue;
}
stat = Status.idle;
timeCount += 1;
timeCheck = 0;
if(timeCount >= completeTime) {
Console.WriteLine(i + 1);
stat = Status.NON;
isFlush = true;
}
}
}
if(stat == Status.idle) {
isFlush = true;
Console.WriteLine(timeLength + completeTime - timeCount);
}
else if(stat == Status.Using) {
isFlush = true;
Console.WriteLine(timeLength + completeTime);
}
if(!isFlush) {
Console.WriteLine("NIKAD");
}
}
}
}