인프런 커뮤니티 질문&답변

조원준님의 프로필 이미지

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

7. 교육과정설계(큐)

테스트 케이스 2번이상합니다

작성

·

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

조원준님의 프로필 이미지
조원준
질문자

네 ㅎㅎ 하나 배워 갑니다 감사합니다!