[백준] 2863 이게 분수?

2021. 6. 26. 10:17·알고리즘 이론/백준

2863. 이게 분수?

https://www.acmicpc.net/problem/2863

 

2863번: 이게 분수?

첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다.

www.acmicpc.net

 

입력으로 100보다 작은 양의 정수 4개가 입력되고, 이 정수들을 시계방향으로 돌린 후 함수에 해당값을 넣어 계산하는 문제이다. 우선 입력되는 정수가 4개로 고정되어있으므로 결과값이 총 4개가 나온다. 

 

이 문제를 처음 접근할 때, 규칙을 찾아서 각 자리의 인덱스가 어떻게 변화하는 지를 찾아내려고 했지만 결론적으로 경우의 수가 4개밖에 없기 때문에 규칙을 찾아도 주먹구구식 방식이 더 빠르고 간편하다는 결론이 나왔다.

 

앗! 그리고 필자가 문제를 풀 때 놓친 부분이 있었다. 문제에서 주어진 식은 나눗셈과 덧셈이 함께 있다. 나눗셈의 결과가 소숫점까지 발생할 수 있으므로 계산 결과는 모두 double형으로 저장했다. 

 

때문에 입력 받은 정수를 순서대로 배열에 저장하고, 모든 경우의 함수값을 벡터에 저장했다. 벡터를 통하여 최대값이 되는 경우 표를 몇번 돌려야하는 지 쉽게 알 수 있다.

 

더보기

코드:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
double arr[4];
vector<double> v;
int temp = -1;
int ret;

int main() {
	ios::sync_with_stdio(0);
	cout.tie(); cin.tie();
	for (int i = 0; i < 4; i++) {
		cin >> arr[i];
	}
	
	v.push_back(arr[0] / arr[2] + arr[1] / arr[3]);
	v.push_back(arr[2] / arr[3] + arr[0] / arr[1]);
	v.push_back(arr[3] / arr[1] + arr[2] / arr[0]);
	v.push_back(arr[1] / arr[0] + arr[3] / arr[2]);


	for (int i = 0; i < v.size(); i++) {
		if (v[i] > temp) {
			temp = v[i];
			ret = i;
		}
	
	}
	cout <<ret;




}

 

 

저작자표시 비영리 (새창열림)

'알고리즘 이론 > 백준' 카테고리의 다른 글

[백준] 11059 크리 문자열 c++  (1) 2021.06.26
[5032] 탄산 음료 C++  (0) 2021.06.26
[백준] 1427 소트인사이드 c++  (0) 2021.06.26
[백준] 1065 한수 c++  (0) 2021.06.26
[백준] 1026번 보물 c++  (1) 2021.06.26
'알고리즘 이론/백준' 카테고리의 다른 글
  • [백준] 11059 크리 문자열 c++
  • [5032] 탄산 음료 C++
  • [백준] 1427 소트인사이드 c++
  • [백준] 1065 한수 c++
senyalog
senyalog
개발 블로그 https://github.com/iamyunjuda
  • senyalog
    Senya의 개발 블로그
    senyalog
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • 일상 (6)
      • 알고리즘 이론 (14)
        • 백준 (8)
      • 개발 (47)
        • Server (7)
        • 인턴 (11)
        • Javascript (0)
      • 경제 (4)
  • 블로그 메뉴

    • Github
    • 홈
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    GIT
    이마고웍스
    MSA
    TypeScript
    코딩테스트
    백준풀이
    개발
    서버
    코딩
    백엔드
    대학생
    알고리즘
    생각
    컴공
    개발자
    공부
    대학생인턴
    알고리즘공부
    백준
    nestjs
    일상
    백준문제
    개발공부
    공대생
    C++
    경제
    인턴
    인턴생활
    깃
    카페
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
senyalog
[백준] 2863 이게 분수?
상단으로

티스토리툴바