다음과 같은 반례들이 존재합니다.
입력: AAAAAA
이 코드의 출력: 7 5
올바른 출력: 6 6
왼손으로 a를 다 누르고 오른손으로 Shift를 눌러야 합니다.
입력: a a a a
이 코드의 출력: 5 2
올바른 출력: 4 3
왼손으로 a를 다 누르고 오른손으로 스페이스바를 눌러야 합니다.
먼저 글자들을 입력받은 후 shift나 스페이스바를 나중에 처리하는 방식으로 풀어보세요.
17487번 - 타자 연습
다음과 같은 반례들이 존재합니다.
입력: AAAAAA
이 코드의 출력: 7 5
올바른 출력: 6 6
왼손으로 a를 다 누르고 오른손으로 Shift를 눌러야 합니다.
입력: a a a a
이 코드의 출력: 5 2
올바른 출력: 4 3
왼손으로 a를 다 누르고 오른손으로 스페이스바를 눌러야 합니다.
먼저 글자들을 입력받은 후 shift나 스페이스바를 나중에 처리하는 방식으로 풀어보세요.
감사합니다~
덕분에 해결했습니다 감사합니다!
+) 저랑 똑같은 실수를 하시는 분이 추가로 계실까봐 위 코드가 오류인 이유를 남기자면,
만약 AAAAAA를 누르려 하면,
shift키는 보통 문자를 치기 전에 입력하니까
먼저 shift를 왼쪽으로 누르고 A을 누른다 해서 2 0,
AA 3 1 (A입력 후 shift키를 떼므로 다시 shift를 입력한 후 a키를 입력)
AAA 4 2
AAAA 5 3
AAAAA 6 4
AAAAAA 7 5
이렇게 해서 처음에 정답이 7 5일 것이라 예상했는데,
건덕이가 왼쪽과 오른쪽 차이를 줄인다는 것이, 당시 키를 입력할 때의 차이를 줄이려 하는 것이 아닌,
최종 결과일 때 왼쪽과 오른쪽 차이를 줄인다는 것이었습니다.
즉, 타자로 aaaaaa를 다 칠 때 6, 0이 되니까 미리 쉬프트키를 오른쪽만 눌러야겠다고 똑똑한 건덕이는 미리 다 생각해둔 후 타자를 치는 것입니다!
따라서 문제에서도 문자를 다 입력해 놓은 후, shift, space bar 키로 차이를 조절한다는 말이 있었던 것입니다.
댓글을 작성하려면 로그인해야 합니다.
kth990303 3년 전
C++로 코드를 작성하였고, 개수의 차가 1일 때 왼손잡이이므로 왼쪽을 누르는 조건으로 소문자가 아닌 키일 때, left-right<=1일 때 left++ 조건을 추가하였습니다.
질문검색에서 aaaJJ 일 때 4 3 예시가 있길래 그것까지 추가하였는데 틀렸습니다가 떠서 반례 부탁드립니다 ㅠㅠ