tjdwlsdl   7달 전

틀린게 없는거 같은데 틀리다고 하니...

계속 보고는 있는데 어디가 틀린지 모르겠어요 ...ㅠㅠㅠㅠ

어디가 틀린건지 알려주세요ㅠㅠ

nsy0042   7달 전

안녕하세요~

반례를 찾아왔는데

(1)..FF..FF
(2)........
(3)........(4)FFFFFFFF
(5)....FFFF(6)FFFF....
(7)FFFFFFFF
(8)FFFFFFFF

(9)FFFFFFFF
(10)FFFFFFFF

이런 경우는 3번쨰 줄과 4번쨰 줄에 8자를 추가로 넣었지만 다 읽어버리는 현상이 있네요.

그리고 결과값은 26이 나오더라구요

저는 풀은 상태로 제꺼 소스로 돌려보니 20이란 결과값이 나오네요.

저기 4번과 6번은 포함이 안되야 정상입니다. 문자 전체를 읽긴하되, 8자리까지만 읽어야 정답처리 되는 것 같습니다.

tjdwlsdl   7달 전

답변해주셔서 감사합니다.

저는 문제에 8*8크기라고 해서 했거든요 ㅠ.

그리고 답변 주신 것처럼  size에 8넣고 해봤는데

직접 돌릴때는 20이 나오지만....

제출하면 틀리다고 나오내요 ㅠ...ㅠ

코드는 아래와 같이 고쳤습니다 ..ㅜ

nsy0042   7달 전

음... 문제가 있는 부분이 sc.nextLine().split("");부분 같네요

저같은 경우는 for문을 8번 돌리고, 그 안에 String 하나를 받았습니다.(scan.nextLine()이기 때문에 같게 받았습니다.)

그리고 String을 charAt라는 함수를 사용해서 한글자씩 자르고, 8자리까지만 해서

저기 적으신대로 조건이 i % 2 == 0, j % 2 ==0일떄와 i % 2 ==1, j % 2 == 1일때 2개로 받아서 했습니다.

아무래도 split("")부분에 의해 길어지면 다음행으로 넘어가는 '\0'값을 받아야 해서 계속 받게되는 것 때문에 틀린 것 같습니다.

저는 8자리까지 받기 때문에 상관없지만, split를 사용하여 할 경우 더 받는다는 점 때문에 틀렸다는 것 같네요.

FFFFFFFFFFFFFFF

FFFFFFFFFFFFFF

FFFFFFFFFFFFFF

FFFFFFFFFFFFFF

이렇게 받고나면 다른 것을 아예 못받으셔서 이런식으로 하시면 안되실것 같긴한데 제가 split부분을 잘 몰라서 이렇게는 하지말라는 말은 못하겠습니다.

하지만 중요한건 8자리까지만 받아야 하는 것 같습니다. 더 길어져도 8자리까지만 받고 다음 행으로 넘겨야 하는 것 같네요.

nsy0042   7달 전

제가 찾아 본 결과

split("")부분에서 split("", 9)라고 쓰면 8자리까지 하고 다음 행으로 넘어가네요.

근데 내면은 틀렸습니다.라고 뜨는걸 보니 아무래도 split보다 다른쪽에서 문제가 있는건지 정확히 모르겠네요.

명확한 답을 못드려서 죄송합니다.

tjdwlsdl   7달 전

음 split이 문제 인지는 모르겠지만

말씀하신데로 charAt으로 수정해서 푸니 맞다고 나오내요....

split으로 풀때는 왜 안되는지는 찾아 봐야겠어요 ..ㅠㅠ

답변주셔서 정말 감사합니다! 님 덕분에 겨우겨우 풀었습니다  ㅎㅎㅎㅎ..

댓글을 작성하려면 로그인해야 합니다.