[C++, 프로그래머스 - Lv.0] 주사위 게임 3

2023. 7. 19. 02:54·코테/프로그래머스


[C++, 프로그래머스 - Lv.0] 주사위 게임 3

사용 언어 : C++

 

< 문제 내용 >

 

< 생각 >

해당 문제는 주사위가 나온 값에 따라서 달라지는 점수 공식을 대입하여, 최종적인 점수를 반환하면 됐다.

if문을 통해서 주사위가 나온 결과들을 도출하면 되는데, 다른 방법이 있을 것 같아서 아래의 코드가 나오게 되었다.

 

switch문 안의 duple.second에 들어가 있는 데이터의 산출 방식은 a, b, c, d가 모두 2로 동일한 숫자를 가지고 있을 때, dupleMap[a ~ d]는 모두 dupleMap[2]를 의미하므로, duple.second는 4가 들어가게 된다.

 

이러한 성질의 차이를 통해서 swtich로 여러 case가 나뉠 수 있도록 했다.

 

< 해결 내용 >

#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <map>

using namespace std;

int solution(int a, int b, int c, int d) {
	map<int, int> dupleMap;

	int p = 0;
	int q = 0;
	int r = 0;

	int answer = 0;
	int type = 0;

	dupleMap[a]++;
	dupleMap[b]++;
	dupleMap[c]++;
	dupleMap[d]++;

	for (auto duple : dupleMap)
	{
		type = (type > duple.second) ? type : duple.second;

		switch (duple.second)
		{
		case 4:
			return 1111 * duple.first;
                
		case 3:
			p = duple.first;

			break;
                
		case 2:
			if (p == 0)
			{
				p = duple.first;
			}
			else
			{
				q = duple.first;
			}

			break;
                
		case 1:
			answer = min({ a,b,c,d });

			if (q == 0)
			{
				q = duple.first;
			}
			else
			{
				r = duple.first;
			}

			break;
		}
	}

	return (type == 3) ? pow((10 * p) + q, 2) : (type == 2) ? (((p + q) * (abs(p - q))) * !(bool)r) + (q * r) : min({ a,b,c,d });
}

'코테 > 프로그래머스' 카테고리의 다른 글

[C++, 프로그래머스 - Lv.0] 연속된 수의 합  (0) 2023.07.19
[C++, 프로그래머스 - Lv.0] 안전지대  (0) 2023.07.19
[C++, 프로그래머스 - Lv.0] 겹치는 선분의 길이  (0) 2023.07.04
[C++, 프로그래머스 - Lv.0] 정수를 나선형으로 배치하기  (0) 2023.07.04
[C++, 프로그래머스 - Lv.0] 옹알이 (1)  (0) 2023.07.04
'코테/프로그래머스' 카테고리의 다른 글
  • [C++, 프로그래머스 - Lv.0] 연속된 수의 합
  • [C++, 프로그래머스 - Lv.0] 안전지대
  • [C++, 프로그래머스 - Lv.0] 겹치는 선분의 길이
  • [C++, 프로그래머스 - Lv.0] 정수를 나선형으로 배치하기
태역
태역
  • 태역
    RYULAB
    태역
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 언어
        • C
        • C++
        • C#
      • 엔진, 프레임워크
        • Unity
        • Unreal
        • Electron
      • 공부
        • 디자인 패턴
        • 수학
        • CS
        • Git
        • 알고리즘
        • 자료구조
      • 코테
        • 프로그래머스
        • 백준
      • 독서
        • Effective C#
        • CLR via C#
        • 뇌를 자극하는 윈도우즈 시스템 프로그래밍
        • 오브젝트
        • CSAPP
        • OSTEP
      • 프로젝트
        • Unity
      • 개발 일지
        • 퓨처리티
        • 골든타임
      • 활동
        • 게임잼 후기
        • 게임제작동아리 브릿지
        • 크래프톤 정글
        • 기타
      • 기타
  • 블로그 메뉴

    • 링크

    • 공지사항

      • 2024 04 17
    • 인기 글

    • 태그

      인프런 #인프런강의후기 #게임개발 #게임개발강의 #인강후기 #강의후기 #게임개발자 #인프런강의
      티스토리챌린지
      오블완
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    태역
    [C++, 프로그래머스 - Lv.0] 주사위 게임 3
    상단으로

    티스토리툴바