마이라이프해피라이프

[CPP] 2480 - vector 자료형 본문

컴퓨터/백준(C++)

[CPP] 2480 - vector 자료형

YONJAAN 2024. 11. 6. 19:42

💻 문제 - 2480 번 조건문


https://www.acmicpc.net/problem/2480

✅ 관련 이론


vector 자료형

  • vector::iterator type으로 요소에 접근한다.
  • vector.begin(), vector.end()로 처음과 끝의 포인터를 확인한다.
  • 원하는 index의 값을 얻으려면 vector.begin() - iter로 접근한다. 
  • vector.at(index)로 원하는 index에 접근한다. (index 범위가 유효하지 않을 때 out_of_range 오류가 발생한다.)
  • reverse로 접근하고 싶을 때는 vector::reverse_iterator로 접근한다.
  • vector.rbegin(), vector.rend()로 처음과 끝의 포인터를 확인한다.
  • 이때, 접근하는 iterator는 처음으로부터 얼마나 떨어져있는지를 나타내기 때문에 원하는 index의 값을 얻으려면 vector.rend() - iter - 1로 접근해야 한다. 

 

http://www.soen.kr/lecture/ccpp/cpp4/39-3-3.htm

 

다른 풀이 방법

vector를 이용한 접근법으로 문제를 풀었지만, 근본적으로는 if문 (분기)에 대한 문제이기 때문에 참고할 만한 다른 사람의 풀이를 올려둔다.

if (x==y && y==z) cout<<10000+x*1000;
else if (x==y || x==z) cout<<1000+x*100;
else if (y==z) cout<<1000+y*100;
else cout<<max(x, max(y, z))*100;

개인적으로 위의 풀이가 깔끔하다고 느꼈다.