peterjdw   2년 전

도움을 주십시오..고수님들..

55murphy   2년 전

최빈값이 입력으로 주어진 수들 중에 가장 큰 수면 다른 수가 최빈값으로 출력되요

46번 if문 조건식이 false가 나와야, 즉 arr[i] 와 arr[i-1]이 틀려야 maxstack을 구하는데,
만약 최빈값이 주어진 수 중 최대값이면 더이상 arr에 있는 수가 없어 maxstack을 구할수 없습니다.
이 문제는 50번 줄에 있는  기존에 구한 maxstack보다 stack이 크면 maxstack을 stack으로 만드는 if문을 46번 줄 안에 있는 if문 안으로 옮기시면 해결하실수 있읍니다

아래 반례를 넣으면 정렬된 arr[] = {1, 2, 3, 3, 3}에서 연속된 수가 아니여야 maxstack이 갱신됩니다 stackarr[] = {1, 1, 1, 2, 3}으로 3이 최빈값이란걸 알 수 있지만, maxstack은 1입니다

peterjdw   2년 전

와 정말 감사합니다.. 벡터로 바꿔서 일단 풀긴했는데 깔끔하게 설명해주셔서 감사합니다!!

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