작성
·
275
0
AKDEF
5
AYKGDHEJ
AQKWDERTFYP
CTFKSBDEA
ASKGHDEF
WOPASFKGHDEF
여기서 마지막 AKDEF가 포함되어있는데 채점기에는 NO라고 되어있습니다.
s=input()
n=int(input())
for i,_ in enumerate(range(n)):
tmp = input()
r=list(s)
for x in tmp:
if len(r)==0:
break
elif x == r[0]:
r.pop(0)
if len(r)==0:
print("#%d YES"%(i+1))
else:
print("#%d NO"%(i+1))
참고로 저는 다음과 같이 코드 작성해 보았습니다! 감사합니다
답변 7
3
WOPASFKGHDEF 이 입력은 NO가 나오는게 맞습니다.
W O P A S F 까지 진행하면 이 F 과목은 K, D, E 과목보다 먼저 나오면 안됩니다.
저희 학생중에 원준님처럼 짠 학생이 있어서 일부러 그런 데이터를 만들었던게 아닌가 싶습니다.
문제설명에 "모든 강의는 한 번만 듣게 설계한다 " 이런 말이 없으면 모든 가능성은 열어놔야 합니다.
한 과목을 여러번 수강하는 과목설계도 할 수 있습니다. 그런 설계를 하면 원준님처럼 짠 코드는 과목설계가 필수과목 순서를 어겼는데도 찾지못하는 결과가 나옵니다. 좀 치사하지만 실제 시험에서도 치사한 일들이 많습니다.
문제에서 수업설계의 길이를 30이하로 바꾸어 놓겠습니다. 데이터의 길이가 15를 넘는 경우도 있네요. 그리고 30이하이면 한 과목을 여러번 들을 수 있게 설계될 수 도 있다는 힌트가 될 것 같습니다. 원준님때문에 수업의 자료가 더 좋아지고 있습니다. 감사합니다.^^
0
0
0
필수과목의 입력은 그 순서를 지키라는 과목의 순서알려주는 입력입니다. 이 문제의 포인트는 그 순서를 어기거나 필수과목을 듣지 않는 것을 찾는 것입니다.
입력데이터에 필수과목순서에서 과목 중복이 없다면 단순 순서로 해석하고 넘어갔으면 합니다.
필수과목도 여러번 이수하는 과목설계를 해도 상관 없습니다.
AFC //이 입력의 의미는 A과목을 들어야만 F과목을 들을 수 있고, A, F를 들은 후에 C는 들을 수 있다로 해석합니다.
1
AFFCCFF
F과목은 A를 듣고 난 후, C과목은 A와 F를 듣고 난 후에 듣는 순서만 지켜준다면 위와 같은 입력일 경우 YES로 출력하면 됩니다.
저는 아래와 같은 의도는 없었습니다. 시험장에서 본인이 이런 가능성까지 생각했다면 문제에 표면적으로 드러난 내용을 지키면 서 이런 가능성까지 커버할 수 있는 코드를 짜는 것입니다. 본인의 실력으로 불가능하다면 일단 문제에 있는 내용에 충실하게 코드를 짜면 되는 것같습니다. 아니면 감독관에게 아래 내용을 질문을 해야겠죠.
예를 들어 " 필수 과목 A를 반드시 2번이수해야한다" 라는 말이 여러 가능성중에 참이 된다면
필수과목 순서가 AAC이고
설계순서를 AAAC로 만들었다면 이는 참이 되어야 하나요??
0
0
한가지더 궁금한게 있는데 여러 가능성을 열어 둔다고 하셨잖아요
그러면 "필수과목은 반드시 이수해야 하며 그 순서가 정해져있다" 여기에서
예를 들어 " 필수 과목 A를 반드시 2번이수해야한다" 라는 말이 여러 가능성중에 참이 된다면
필수과목 순서가 AAC이고
설계순서를 AAAC로 만들었다면 이는 참이 되어야 하나요??
아니면 필수 과목은 반드시 이수해야한다는 말은 "필수과목은 중복을 하여 들을 수없다" 라고 가정해야 하는가요?
테스트 케이스는 필수과목이 중복해서 들어간 경우가 없어서 질문 드립니다!
0