개발자 톡

커뮤니티 톡 자유 주제

테스크케이스 부분 실패

등록일
2022-04-13 11:56:24
조회수
754
작성자
msk0607

안녕하세요, 아래 코드로 답안 제출 시 Test Case #1 ~ #7 까지 오답으로 나오는데요.


혹시 테스트케이스는 알 수 없나요?


확인 부탁드립니다.




import sys

alpha = []
key_tbl = []
msg_tbl = []
tmp = ''
answer = ''

# 5x5 key table 작성
for i in range(65, 91):
    if chr(i) != 'J' :
        alpha.append(chr(i))
        
msg = input()
key = input()

for i in range (len(key)):
    if key[i] in alpha:
        key_tbl.append(key[i])
        alpha.remove(key[i])

key_tbl += alpha

for i in range (len(msg)):

    if i == 0:
        tmp = msg[i]
    elif i >= len(msg)-1:                
        if tmp == '':
            msg_tbl.append(msg[i]+'X')             
        elif tmp == msg[i]:
            if tmp == 'X':
                msg_tbl.append(tmp+'Q')
            else:
                msg_tbl.append(tmp+'X')                
            msg_tbl.append(msg[i]+'X')
        else:
            msg_tbl.append(tmp+msg[i])
    # i > 0이고 메시지의 끝이 아닐때
    else:            
        # 같은 문자가 연속이 아닐때        
        if tmp != msg[i]:                        
            # 2글자씩 msg_tbl에 추가
            if len(tmp) == 1:                
                msg_tbl.append(tmp+msg[i])
                tmp = ''
            else:
                tmp = msg[i]

        # 같은 문자가 연속이면..이땐 len(tmp)가 1
        else:
            # X가 연속
            if msg[i] == 'X':
                msg_tbl.append(tmp+'Q')                
            # X가 아닌 다른 문자가 연속
            else:
                msg_tbl.append(tmp+'X')                
                
            tmp = msg[i]
    

for i in range (len(msg_tbl)):
    idx1 = key_tbl.index(msg_tbl[i][0])
    idx2 = key_tbl.index(msg_tbl[i][1])
    
    if idx1 // 5 == idx2 // 5:        
        answer += key_tbl[(idx1//5)*5 + (((idx1%5)+1)%5)]
        answer += key_tbl[(idx2//5)*5 + (((idx2%5)+1)%5)]
        
    elif idx1 % 5 == idx2 % 5:
        answer += key_tbl[(idx1 + 5) % 25]
        answer += key_tbl[(idx2 + 5) % 25]
        
    else:
        answer += key_tbl[((idx1//5)*5) + (idx2 % 5)]
        answer += key_tbl[((idx2//5)*5) + (idx1 % 5)]

print(answer)        
    


#python
#플레이페어

이 카테고리의 톡 더보기