강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

18. 층간 소음

23번 문제를 벡터로 풀다가 질문이 있습니다.

작성

·

185

0

아무리봐도 잘못된 부분이 보이지 않는데

count를 print해보았을 때, 왜 count가 7로 나오는지 모르겠습니다..

혹시 잘못된 부분이 있다면 지적해주시면 감사하겠습니다.

#include<iostream>

#include<stdio.h>

#include<vector>

using namespace std;

int main() {

freopen("input.txt", "r", stdin);

int n, count = 1, max = -1;

scanf("%d", &n);

vector<int> a(n);

for (int i = 0; i < n; i++) {

scanf("%d", &a[i]);

}

for (int i = 0; i < n; i++) {

count = 1;

for (int j = i + 1; j < n; j++) {

if (a[i] < a[j] || a[i] == a[j])

count++;

//5 7 3 3 12 12 13 10 11

else

break;

}

printf(" %d", count);

if (count > max)

max = count;

}

//printf("%d", max);

}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안쪽 j for 문을 이렇게 바꾸면 됩니다.

for (int j = i; j < n-1; j++) {

 if (a[j] <= a[j+1])

 count++;

if문이 j와 j+1이 비교되어야 합니다. 

추신) 다른 수강자들도 질문과 답변을 보고 있으니 23번 질문이면 23번 영상에서 질문을 해주시면 감사하겠습니다.

또한 코드를 올릴때에는 {;} 아이콘을 사용해서 코드를 올려주시면 제가 보기가 편합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기