inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

19. 분노 유발자(1차원 배열의 필요성)

질문있습니다.

해결된 질문

271

최정은

작성한 질문수 9

0

19번 분노 유발자 문제의 코드를 강의에서 설명해주신 것과 다르게 작성해보았는데요

배열의 뒤에서부터 최대값을 찾아나가며 cnt에 1씩 더해주는 방법과 다르게

배열의 앞에서부터 비교하는 방법을 사용해보았습니다.

예를 들어 배열의 개수만큼 for문을 이용하여 반복을 하여 이중 반복문을 통해 해당 요소의 뒤에 수들이 모두 해당 요소의 값보다 작은지를 점검한 후 그렇지 않으면 bool형 변수에 false를 저장한 후 break하여 반복문을 탈출하도록 작성하였습니다.

코드는 다음과 같습니다. 채점 프로그램을 돌려보니 맞지 않다는 부분이 있어서 어떤 부분이 문제가 되는지 궁금합니다.

#include <stdio.h>

int main() {

   //freopen("input.txt", "rt", stdin);

   int n, i, k, cnt=0;

   bool flag = true;

   scanf("%d", &n);

   int s[100];

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

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

   }

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

      flag = true;

      for(k=i+1; k<n; k++){

         if(s[i]<s[k]){

            flag = false;

            break;

         }

      }

      if(flag) cnt++;

   }

   printf("%d\n", cnt-1);

   

   return 0;

}

반복문 C++ 코테 준비 같이 해요!

답변 1

1

김태원

안녕하세요^^

문제를 읽어보시면 앉은 키가 작은 학생만 시청을 방해합니다. 키가 같으면 방해하지 않습니다.

다음과 같이 고치시면 됩니다.

        if(s[i]<=s[k]){

           flag = false;

            break;

        }

테스트 케이스 질문

0

368

1

병합정렬 시간복잡도 질문

0

459

1

41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.

0

1339

2

질문드립니다.

0

371

1

질문드립니다!

0

425

1

dev 프로그램 질문

0

270

1

문제가 이해가 안되요

0

371

1

4번 나이차이 문제 접근법 질문 드립니다.

0

302

1

source file not compiled

0

1030

3

59번 질문드립니다.

0

367

1

25번 문제 질문

0

343

1

4. 나이차이 문제 질문입니다.

0

364

1

90번 라이언 킹 심바 1번 테스트 케이스

0

465

1

71번 문제 전역 변수 질문 있습니다

0

353

1

75번, 79번 priority_queue관련

1

351

1

75.최대 수입 스케줄

0

391

2

복면산 정답의 수

0

424

1

테스트 케이스에 대해서

0

438

1

수업 내용 질문입니다!

1

226

1

풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!

0

813

2

12. 플로이드-와샬(그래프 최단거리) . 27:25초

0

248

1

다른 풀이 방식

0

312

1

크루스칼 vs 프림

0

301

1

숫자 총개수 small 질문있습니다.

0

232

1