2023. 4. 30. 13:58, 알고리즘/BOJ
처음에 나는 1932번 문제에 대해서
int ans=0;
for(int j=1; j<=n; j++){
ans=max(ans,p[n][j]);
}
cout<<ans;
형태로 최대값을 찾아서 출력하였다.
그리고 강의에 첨부되어있는 정답 코드에서는
cout << *max_element(d[n] + 1, d[n] + n + 1);
이렇게 한줄로 표현하였다.
그래서 *max_element();에 대해서 지피티에 검색해보았다.
내가 얻은 정보로 보았을때 내가 직접 max값을 지속적으로 최신화 시켜주면서 구하는 것과, *max_element()를 사용하여서 구하는 것이나 결국 내부 구동하는 방식은 같은 것으로 보여진다.
하지만 익숙해진다면 *max_element(); 형태로 작성해서 간결하게 표현하도록 하자.
이때 max_element()가 반환하는 값이 주소값이라는걸 명심하고, 값을 사용하기 위해 * 연산자를 붙여서 해당 주소에 있는 값을 가져온다는걸 기억하도록 하자.
만약 max_element()에 * 연산자를 붙이지 않고 출력을 해보면,
이런식으로 0039798C의 값을 출력한다.
'알고리즘 > BOJ' 카테고리의 다른 글
파이썬 코드를 볼때 알게된 c++과 파이썬의 복사의 깊이 차이. (0) | 2023.05.01 |
---|---|
long long 타입으로 선언한 변수에 값을 할당할때 LL을 붙이도록 하자. (0) | 2023.04.30 |
c++ visual studio 2019 상에서 지역변수를 크게 잡았을때의 프로그램이 정상적으로 동작하지 않는것에 대하여. (0) | 2023.04.29 |
c++ min(), max()에 3개 이상의 인자를 넘길때의 방법. (0) | 2023.04.29 |
c++ 128mb가 주어졌을때 만들수 있는 int 타입 변수의 갯수. (0) | 2023.04.28 |
Comments, Trackbacks