inflearn logo
강의

Course

Instructor

10-Week Completion C++ Coding Test | Algorithm Coding Test

Week 6 Concept #1. Binary Search

강사님 LIS 설명해주실때..

459

dkseotn1237962

9 asked

0

maxValue가 정확히 어떤 역할을 하는지 조금 더 자세하게 알려주실수 있으실까요..? 처음 접하는 개념인데 넘 빠르게 지나가서 잘 모르겠습니다..

감사합니다

c++ 코딩-테스트

Answer 2

0

dkseotn1237962

감사합니다 강사님

0

kundol

안녕하세요 공부님 ㅎㅎ

음 이코드 말씀하시는거죠?

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int n, a[1001], cnt[1001], ret;
int main(){
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", a + i);
    }
    for (int i = 0; i < n; i++) {
      int maxValue = 0;
      for (int j = 0; j < i; j++) {
        if (a[j] < a[i] && maxValue < cnt[j]) maxValue = cnt[j];
      }
      cnt[i] = maxValue +1;
      ret = max(ret,cnt[i]);
    }
    printf("%d\n", ret);
}

자, 저 maxValue는 최대의 cnt를 만들기 위한 임시 변수입니다.

예를 들어

10 20 10 20 30 이 있다고 해볼게요.

처음입니다. maxValue는 0이기 때문에 0 + 1을 해서 1입니다.

10 20 10 20 30

1

이상태에서

20을 탐색을 해나갑니다. 20보다 작은 수는 10이죠? 이 10의 cnt값은 1입니다. 여기에다 + 1을 한게 20의 lis가 되는 것이죠.

10 20 10 20 30

1 2

 

그러나 10보다 작은 수는 존재하지 않습니다.

10 20 10 20 30

1 2 1

 

그 다음으로 가서 20보다 작은 수를 보니 10밖에 없습니다. maxValue는 10의 cnt값을 가져옵니다. 여기서 maxValue는 1입니다. 20보다 작은 수, 그리고 최대의 cnt를 만들기 위한 임시 변수는 1로 담겼다가

10 20 10 20 30

1 2 1 2

나중에

      cnt[i] = maxValue +1;

이걸 거쳐서 cnt에는 2가 담기게 됩니다.

 

그 다음, 30으로 가서 30보다 작은 수, 10, 20 이 있습니다. maxValue는 10의 cnt, 20의 cnt 를 거치는데 원래 maxValue가 1이였다 20의 cnt를 거치면서 maxValue = 2가 됩니다.

왜냐하면

        if (a[j] < a[i] && maxValue < cnt[j]) maxValue = cnt[j];

앞의 코드에 부합하면서

10 >> maxValue = 0, 10의 cnt : 1 >>>

maxValue = 1 을거쳐...

20 >> maxValue = 1, 20의 cnt : 2 >>>

maxValue = 2가 되는 것이죠.

10 20 10 20 30

1 2 1 2 3

그렇게 해서 해당 cnt에는 +1을 한 3이 담기게 됩니다.

 

또한, 공부님 앞으로 공부하실 때 문제 링킹좀 부탁드립니다.

해당 부분은 0주차 질문하는법 보시면 나와있어요. ㅎㅎ

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

BFS, DFS 활용이 되는 상황에서의 방향성

0

3

1

코딩살구클럽 승인

0

9

1

코딩살구클럽승인

0

7

1

코딩살구클럽 승인

0

41

2

3-D 관련 질문

0

33

2

코살구 회원가입 문의

0

38

2

코살구 로그인 문제

0

58

2

3-A 문제 풀이 관련 질문

0

51

3

2-O 질문 있습니다

0

38

2

2-T 문제에 관한 질문

0

38

2

코딩 살구 클럽 접속 및 사용방법 문의

0

56

2

안녕하세요~. 현재 코살코딩클럽 사이트가 접속이 안됩니다~

0

64

2

코딩살구클럽 로그인문제

0

74

3

코딩 살구 클럽 로그인 문제

0

79

2

2-J 채점관련 질문

0

65

3

코딩 살구 클럽 Python 지원 가능 여부

0

77

1

살구클럽 아이디 없음 문제

0

76

1

1-O 코딩살구클럽 채점관련 질문

0

60

2

히든 테스트 케이스가 사라졌습니다

0

57

1

채점서버 혹시 다른 언어 지원도 가능하게 해주실 수 있나요

1

74

2

살구 클럽 채점 관련 문의(테스트 케이스)

0

66

2

1-H 문제 채점하기 오류

0

58

3

코딩살구클럽 2주차 2-L 문제 채점하기 오류

0

52

2

살구 클럽 채점 관련 문의

0

63

2