hazirahmuslim   2년 전

예제 있는 코드는 다 맞게 나왔는데 결과는 틀렸다고 나와요. 그런데 반례를 못 찾겠어요. 코드 틀린점이나 반례를 알려주실 수 있나요?

euphoric_n   2년 전

20, 28, 31번 비교에서 문제에서 사용되는 범위를 넘어가는 인덱스를 참조하고 있습니다.

hazirahmuslim   2년 전

저부분을 고쳤는데도 실패했다고 나왔는데요.

euphoric_n   2년 전

35~43번 줄의 for문 로직은 완전히 잘못되었습니다. for문 안에 있는 break는 for문을 탈출 시킵니다.

input : 

1

asdfsd

c = { a s d f s d }

정렬 후

c = { a d d f s s }

for문 진입 후, 

c[1] = d, c[0] = a 이므로 total++ 후 반복문 탈출

output

1

answer

0

hazirahmuslim   2년 전

이해가 됐는데 bool 변수를 만들었습니다. 이렇게 했는데도 틀렸다고 나왔는데 혹시 for문 때문에 그런가요? 

euphoric_n   2년 전

input

1

asdfad

output

1

answer

0

c = { a s d f a d }

정렬 후

c = { a a d d f s }

flag = false에서 시작

c[1] = a, c[0] = a 검사 : flag = false

c[2] = d, c[1] = a 검사 : flag = true

..

c[5] = s, c[4] = f 검사 : flag = true

flag = true 이므로 total값 증가

flag가 제일 마지막 검사값만 가지고 판단하고 있습니다.


for문 안에 flag 변수를 true로 초기화 하시고

c[k]와 c[k-1]이 다르다면 flag 값 변경 없이 그대로 진행, 같다면 flag = false로 만들고 탈출하셔야 정상적으로 동작하게 됩니다.

hazirahmuslim   2년 전

감사합니다. 잘 풀었습니다.

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