백준 단계별로 풀어보기(C++)/2)조건문

백준 2480) 주사위 세개 (C++)

코테 2023. 3. 9. 02:02

전체 코드

#include <iostream>

int main()
{
	int n1, n2, n3, price;
	std::cin >> n1 >> n2 >> n3;

	if (n1 == n2 && n2 == n3)
		price = 10000 + n1 * 1000;
	else if (n1 == n2)
	{
		price = 1000 + n1 * 100;
	}
	else if (n1 == n3)
	{
		price = 1000 + n1 * 100;
	}
	else if (n2 == n3)
	{
		price = 1000 + n2 * 100;
	}
	else
	{
		int max = n1 > n2 ? (n1 > n3 ? n1 : n3) : (n2 > n3 ? n2 : n3);
		price = max * 100;
	}
	std::cout << price;
}

 

풀이

  • n1==n2 이고 n2==n3인 경우(자동적으로 n1==n2==n3, 즉 3개다 같은 경우가 됨) price 설정
  • n1, n2, n3중 어느것이든 상관 없음
if (n1 == n2 && n2 == n3)
	price = 10000 + n1 * 1000;
  • 2개의 항목이 같은 경우
  • 3개다 같은 경우는 위의 if문에서 걸러짐
  • 곱하는 값은 같은 두수에 해당한다면 어떤 n이든 상관 없음
else if (n1 == n2)
{
	price = 1000 + n1 * 100;
}
else if (n1 == n3)
{
	price = 1000 + n1 * 100;
}
else if (n2 == n3)
{
	price = 1000 + n2 * 100;
}
  • 나머지 경우(3개다 같지 않은 경우)
  • 삼항연산자로 max값 반환함. 큰 값의 변수쪽을 max에 넣도록 설정
  • max값에 100 곱함
else
{
	int max = n1 > n2 ? (n1 > n3 ? n1 : n3) : (n2 > n3 ? n2 : n3);
	price = max * 100;
}