[프로그래머스/C++] 주사위 게임 3

2024. 2. 4. 02:55·[ Computer Science ]/Algorithm_C++

0. 문제

풀이한 문제 - 주사위 게임 3 (프로그래머스 / Lv.0 / 60%)

https://school.programmers.co.kr/learn/courses/30/lessons/181916

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 테스트 케이스 분석

주사위를 네 개 굴렸을 때 나오는 숫자가 주어지고

네 숫자 중 같은 숫자가 몇번 등장하는지에 따라

계산방법이 달라지는 문제다

 

각 경우를 보기 좋게 정리해보면

크게는 총 다섯 가지의 점수 계산법이 있고

정렬된 배열이라고 가정했을 때

세부적으로는 9가지의 경우의 수가 있다

 

2. 코드 및 풀이

정렬을 위해 algorithm 라이브러리의 sort 함수를 사용했고

이후 과정에서 제곱 연산이 필요하기 때문에

cmath 라이브러리를 추가로 include 해줬다

 

입력 받은 네 개의 숫자로 일단 배열을 선언하고

그 배열을 sort 함수로 정렬해주었다

 

첫번째, 모든 숫자가 같으려면

정렬된 배열에서 a와 d가 같으면 모든 숫자가 같은 것이므로 

0번과 3번 인덱스를 비교해서 계산한다

 

2번은 세 숫자가 같은 경우이다

정렬된 배열에서 세 숫자가 같으려면

abc / bcd 가 같아야 하므로

각각 d 또는 a가 다른 숫자가 됨을 고려하여 계산한다

이때 제곱 연산이 필요하기 때문에

e 변수에 밑 연산 결과를 저장하고

cmath 라이브러리의 pow 함수를 이용해 제곱 연산을 수행했다

 

3번 경우는 두 개씩 같은 경우로

정렬된 배열에서는 ab , cd 끼리 같아야한다

이때 ab와 cd 값은 서로 다르다는 것까지 포함하여

조건을 작성해야한다

 

4번은 두 개는 같고 나머지 두 개는 서로 다른 경우다

ab , bc , cd 가 같은 경우로 나누고

나머지 두 개는 다르다는 조건을 포함하여 조건문을 작성한다

 

5번은 모두 다르다고 조건을 작성하면 된다

 

 

해당 게시글에 사용된 PPT 이미지는 

모두 직접 제작했습니다

 

 

 

728x90

'[ Computer Science ] > Algorithm_C++' 카테고리의 다른 글

[백준/C++/Greedy] 11047 동전 0  (0) 2024.08.19
[백준/C++/Graph] 16928 뱀과 사다리 게임  (0) 2024.07.28
[백준/C++/DP] 1463 1로 만들기  (0) 2024.06.28
[프로그래머스/C++] 연속된 수의 합  (0) 2024.02.04
[프로그래머스/C++] 최빈값 구하기  (0) 2024.02.04
[프로그래머스/C++] 저주의 숫자 3  (0) 2024.02.04
[프로그래머스/C++] 유한소수 판별하기  (1) 2024.02.04
'[ Computer Science ]/Algorithm_C++' 카테고리의 다른 글
  • [백준/C++/Graph] 16928 뱀과 사다리 게임
  • [백준/C++/DP] 1463 1로 만들기
  • [프로그래머스/C++] 연속된 수의 합
  • [프로그래머스/C++] 최빈값 구하기
dev charlotte
dev charlotte
주 - 컴퓨터공학 / 복수 - 산업 보안
    250x250
  • dev charlotte
    int main() {
    dev charlotte
  • 전체
    오늘
    어제
    • 분류 전체보기
      • [ Laboratory ]
        • Paper review
        • Advanced Operating System
        • System Software & Storage
        • Lab etc
      • [ Computer Science ]
        • Algorithm_C++
        • Operating System
        • Information Retrieval
        • Database_sql
        • SW Engineering
        • Computer Network
        • JavaScript
        • Python
        • Data Structure
        • CS study
        • Distributed systems
      • [ Computer Security ]
        • Convergence Security
        • Web Security
        • PIMS
        • Network Security
        • Digital Finance
      • [ Artificial Intelligence ]
        • Trend
        • Seminar
      • [ 미래, 같이, LG ]
      • [ Development ]
        • [ Front-end ]
        • [ Back-end ] Spring 기본
        • [ Back-end ] Node.js
      • etc
        • 현대오토에버 스마트 모빌리티 공학 체험 교육
      • It's me
  • 블로그 메뉴

    • 링크

      • GitHub
    • 공지사항

    • 인기 글

    • 태그

      ssafy 13기
      hotstorage
      코딩 교육
      싸피
      프로그래밍 언어론
      프로그래머스 입문
      SSAFY
      현대오토에버 스마트 모빌리티
      비전공자 코딩
      스마트모빌리티공학체험교육
      프로그래머스 코테
      ACM
      티스토리챌린지
      소프트웨어 공학
      코드잇
      싸피 13기
      spdk
      데이터베이스
      프로그래머스
      현대오토에버 스마트모빌리티
      백준
      자바스크립트
      SQL
      대학생 대외활동
      프로그래머스 c++
      현대오토에버
      MySQL
      오블완
      코딩 인강
      공대생 대외활동
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    dev charlotte
    [프로그래머스/C++] 주사위 게임 3
    상단으로

    티스토리툴바