본문 바로가기
Computer Science/PS

[PS] 2480. 주사위 세개

by BrickSky 2023. 12. 10.

1) 문제: 2480. 주사위 세개

 

2) 나의 첫 풀이

우선 3개의 숫자를 입력받고, 추후에 경우를 나누어 해당 케이스에서 연산을 하는 방법을 떠올렸다.

  • 3개의 숫자를 입력 받는다.
  • 같은 눈이 3개 나오는 경우
    • 해당 눈을 활용한 계산
  • 같은 눈이 2개 나오는 경우
    • 2개 나온 눈을 활용한 계산
  • 모두 다른 눈이 나오는 경우
    • 가장 큰 눈을 활용한 계산
#include <iostream>
using namespace std;

int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    
    if(a==b && b==c)            // a, b, c 모두 같은 경우
        cout << 1000 + a*1000;
    else if(a==b && a!=c)       // a와 b는 같고 c는 다른 경우
        cout << 1000 + a*100;
    else if(a==c && a!=b)       // a와 c는 같고 b는 다른 경우
        cout << 1000 + a*100;
    else if(b==c && b!=a)       // b와 c는 같고 a는 다른 경우
        cout << 1000 + a*100;
    else
        cout << max({a,b,c}) * 100;
}

  

4) 배운 점: max()

 else
        cout << max({a,b,c}) * 100;

 

max() 함수를 활용하면 일일이 비교하지 않아도 가장 큰 값을 구할 수 있다.

위의 코드에서는 max( {  } )의 형태로 활용되어 a, b, c 중 가장 큰 값을 구하고 있다.

 

두 개의 수를 비교할 때에는 위에서 사용한 것과 달리 중괄호 { }를 사용하지 않아도 된다.

단순히 max(1,10)을 작성하면 결과는 10을 준다. 하지만 3개 이상의 수를 비교할 때는 중괄호 { }를 사용하여 비교하면 된다.

 

반대로 작은 값을 얻고자 할 때에는 max()가 아닌, min()을 활용하여 가장 작은 값을 구할 수 있다.

마찬가지로 해당 함수는 #include <algorithm> 알고리즘 헤더 파일에 포함된다.

'Computer Science > PS' 카테고리의 다른 글

[PS] 2490. 윷놀이  (2) 2023.12.11
[PS] 12월 1주차 복습  (1) 2023.12.10
[PS] 2752. 세수정렬  (0) 2023.12.10
[PS] 10871. X보다 작은 수  (0) 2023.12.10
[PS] 27866. 문자와 문자열  (0) 2023.12.10