sanghyun1210   4년 전

안녕하세요,

제 로직은 정렬 후 가장 많이 연속되는 수를 찾는 것입니다.

이 때 사용한 방법은 count와 temp 모두 0으로 잡아둔 상태에서, 배열의 시작부터 끝까지 비교하는 방식입니다.

먼저, arr[i]와 arr[i+1]이 같을 경우 temp++을 해주고, temp가 count보다 커질 경우에 count와 max를 할당해줍니다.

그러다가 arr[i]와 arr[i+1]이 다르게 되면 temp를 1로 초기화시켜주었습니다.

어느 부분이 잘못된 것일까요?

어떤 반례가 있을까요?

부족하지만 많이 배우겠습니다.

nahwasa   4년 전

19번줄은 0으로 초기화하시고 28번줄에선 왜 1로 초기화하신거죠?!

sanghyun1210   4년 전

저는 이렇게 생각했었습니다.

예제가 9 1 1 1 1 2 2 2 2 2  이렇게 들어온다면

1에서 2로 넘어가는 순간에 2를 카운팅하기 위해 28번줄에서 temp에 1을 할당했습니다.


19번째줄에서는 지역변수의 쓰레기값을 버리는 용도로 0을 할당하였습니다.

0을 할당하였는데, 우연히 제 로직에 영향을 주지 않는것처럼 보여서 사용했던것 같습니다.

혹시 0 할당이 문제가 될까요?

답변 감사합니다.

nahwasa   4년 전

네넵 28번줄만 0으로 초기화로 바꾸시면 통과됩니다!

혹은 19번줄을 1로 바꾸셔도 됩니다.

둘이 차이가 나는게 문제였습니다.

sanghyun1210   4년 전

와 이해했습니다!

temp를 이용하여 비교를 하는데, 어차피 비교를 하는것이니 temp를 모두 0으로하든 모두 1로하든 상관이 없는거군요 ㅎㅎㅎ

말씀대로 둘이 차이가 나는게 문제같네요.

제 코드는 애초에 temp의 출발점(?) 기준점(?)이 문제였던것같네요.

덕분에 배워갑니다 ㅎㅎㅎㅎ

감사합니다!

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