[백준] 2480번 : 주사위 세개 (2단계) (C++)

2024. 1. 8. 10:41· 프로그래밍/코딩 테스트 연습
  • https://www.acmicpc.net/problem/2480
 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만

www.acmicpc.net

 


 

문제

 

 

 

 

 

해석

 

문제에서 조건의 기준을 "눈이 몇 개 같냐"를 주었고, 주사위 개수를 입력받는 다면 생각할게 많지만 3개로 고정되었기 때문에 단순히 문제가 풀라는 대로 조건을 세우고 연산하면 되는 문제입니다.

 

 

 

 

 

 

풀이

 

같은 눈이 몇 개인지에 따라 출력이 달라지는 if 문을 세우는 방식도 다양하겠지만 저는 같은 눈이 두 개 이상인 경우와 같은 눈이 없는 경우를 우선으로 해 문제를 풀겠습니다.

 

if (a == b || b == c || c == a) {
        if (a == b && b == c)
            cout << 10000 + a * 1000;
        else if (a == b)
            cout << 1000 + a * 100;
        else if (b == c)
            cout << 1000 + b * 100;
        else if (a == c)
            cout << 1000 + a * 100;
    }
     else
       cout << ...

 

같은 눈이 두 개이상인 경우, 눈이 전부 같을 때와 두 개만 같을 때 출력을 달리 한 if 문입니다.

 

눈이 전부 다른 수일 때 최댓값을 뽑기 위해서 간단한 함수코드를 작성했습니다.

 

int max_number(int a, int b, int c) {
    if (a > b && a > c)
        return a;
    else if(b > a && b > c)
        return b;
    else
        return c;

}

 

즉 마지막 else의 코드블록은 cout << max_number(a, b, c) * 100; 하면 문제의 모든 경우를 고려했습니다.

 

함수를 사용하지 않고, 이항 연산자를 중복해서 사용하면 간단히 세수의 최댓값을 출력할 수 있습니다.

 

(a > b) ? (a > c) ? a : c : (b > c) ? b : c

 

결과는 다음과 같습니다.

 

#include<iostream>
using namespace std;

int max_number(int a, int b, int c) {
    if (a > b && a > c)
        return a;
    else if(b > a && b > c)
        return b;
    else
        return c;

}

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    if (a == b || b == c || c == a) {
        if (a == b && b == c)
            cout << 10000 + a * 1000;
        else if (a == b)
            cout << 1000 + a * 100;
        else if (b == c)
            cout << 1000 + b * 100;
        else if (a == c)
            cout << 1000 + a * 100;
    }
     else
            cout << max_number(a, b, c) * 100;

}

 

 

 

 


 

 

 

정리

 

문제에 주어진 조건을 코드로 작성하는 연습을 도와주는 문제입니다.

 

또한 원하는 기능을 수행해 주는 함수를 직접 만들어 사용하거나 이항 연산자를 통해 세 수의 최대 값을 출력할 수 있습니다.

 

 

 

'프로그래밍 > 코딩 테스트 연습' 카테고리의 다른 글

[백준] 10950번 : A+B - 3 (3단계) (C++)  (1) 2024.01.09
[백준] 2739번 : 구구단 (3단계) (C++)  (1) 2024.01.09
[백준] 2525번 : 오븐 시계 (2단계) (C++)  (0) 2024.01.08
[백준] 2884번 : 알람 시계 (2단계) (C++)  (0) 2024.01.08
[백준] 14681번 : 사분면 고르기 (2단계) (C++)  (1) 2024.01.08
'프로그래밍/코딩 테스트 연습' 카테고리의 다른 글
  • [백준] 10950번 : A+B - 3 (3단계) (C++)
  • [백준] 2739번 : 구구단 (3단계) (C++)
  • [백준] 2525번 : 오븐 시계 (2단계) (C++)
  • [백준] 2884번 : 알람 시계 (2단계) (C++)
w_w
w_w
데이터 사이언스가 목표인 학생입니다. / 공부한 내용을 간단히 정리하는 블로그입니다. / 비공개 게시글은 저작권 보호를 위해 개인 소장 용도로만 사용합니다.
w_w
공부용
w_w
전체
오늘
어제
  • 전체 글 (78)
    • 대표글 (4)
    • 프로그래밍 (71)
      • C++ (8)
      • Python (1)
      • 알고리즘 (1)
      • 코딩 테스트 연습 (61)
      • 게임 (0)
    • 데이터베이스 (0)
      • 데이터 분석 및 시각화 (0)
      • 머신 러닝 (0)
    • 공학 (2)
      • 수학 기본 개념 (2)
    • 정보 (1)
      • AICE (1)
      • Excel (0)
      • Access (0)
      • kaggle (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • Excel
  • 엑셀 파일 통합
  • 프로그래밍 언어
  • 연산자
  • 데이터 분석
  • K-평균 군집화
  • c++
  • 머신 러닝
  • 데이터 분석 패키지
  • 머신러닝
  • 자료구조
  • 클래스
  • 백준
  • 데이터 연산
  • pandas
  • K-최근접 이웃
  • python
  • 텍스트I/O
  • 바이너리 파일
  • 데이터 시각화
  • C언어 링킹
  • 객체
  • IT
  • 바이너리I/O
  • 연결 리스트
  • Matplotlib
  • 그래프 꾸미기
  • 그래프 저장하기
  • 연산자 중복

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
w_w
[백준] 2480번 : 주사위 세개 (2단계) (C++)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.