플라즈밍
플라즈마 IT
플라즈밍
  • All (163)
    • MindSet (2)
    • Wisdom (8)
    • Book (18)
    • [Web] (6)
      • [Web]Guide (2)
      • [Web]HTML-CSS-JS (1)
      • [Web]ReactJS (0)
      • [Web]NextJS (1)
    • 퀀트주식투자 (4)
      • [리포트]포트폴리오 (4)
    • 자산배분전략 (2)
      • [리포트]자산배분전략 (1)
    • 포트폴리오 (0)
      • 발걸음 (0)
    • 개발 Note (3)
    • TipNote (5)
    • 알고리즘 (27)
      • 백준[BOJ] 오답노트 (27)
      • 백준[BOJ] 강의 정리 노트 (0)
    • etc-posts (18)
      • Unity :: C# 튜토리얼 (18)
    • Web&Know (23)
    • 끄적임 (4)
    • 세상이슈 (0)
    • Youtube 유튜브 (3)
      • Youtube 채널소개 (3)
    • 창업 Know&Idea (1)
    • Web&Dev (4)
    • 프로젝트 (6)
      • Unity5 Project (3)
      • UnrealEngine4 Project (2)
      • Web Page (1)
    • 주가차트-기술적분석 (2)
    • BlockChain (7)
    • SystemDesign (11)

인기 글

최근 글

hELLO · Designed By 정상우.
플라즈밍

플라즈마 IT

알고리즘/백준[BOJ] 오답노트

알고리즘 고수의 코드를 보다. - 백준 알고리즘 오답노트 5073

2019. 5. 7. 10:10
반응형

 

 

 

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

 

5073번: 삼각형과 세 변

문제 삼각형의 세 변의 길이가 주어질 때 변의 길이에 따라 다음과 같이 정의한다. Equilateral :  세 변의 길이가 모두 같은 경우 Isosceles : 두 변의 길이만 같은 경우 Scalene : 세 변의 길이가 모두 다른 경우 단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형

www.acmicpc.net

 

#1. 준비된 사람의 알고리즘 문제 풀이

 

//5073

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;

int main(){
	int x,y,z;
	while(true){
		cin>>x>>y>>z;
		
		if(x==0 && y == 0 && z== 0){break;}
		
		if(x==y && y == z){cout<<"Equilateral"<<"\n";}
		else{
			vector<int> v;
			v.push_back(x); v.push_back(y); v.push_back(z);
			auto it = max_element(v.begin(),v.end());
			int sum =0; for(int k:v){sum+=k;}
			sum -= *it;
			
			if(*it >= sum){	cout<<"Invalid\n";	}
			else if( x==y || y==z || x == z){ cout<<"Isosceles\n";}
			else{cout<<"Scalene\n";	}

			//int sum = accumulate(v.begin().v.end(),0);
			//int maxlen = max(x,max(y,z));
		}
	}
}

 

 

#ifndef DEBUG
  #pragma GCC optimize ("Ofast")
#endif
#include <bits/stdc++.h>

//Syntax Sugars
using namespace std;
using f64 = double;
using i8=char;using i16=short;using i32=int;using i64=long long;
using u8=unsigned char;using u16=unsigned short;using u32=unsigned;using u64=unsigned long long;
const f64 pi=acos(-1);
const f64 eps=1e-12;
const i32 prime=i32(2e9 + 11);
i32 mod=i32(1e9 + 7);
template<typename T> T inf() { return numeric_limits<T>::max() / 2; }
#define forh(var, s, e) for(int var=s; (int)s<=var && var<(int)e; ++var)//for: half-opened range
#define forhi(var, s, e) for(int var=e-1; (int)s<=var && var<(int)e; --var)//inversion
#define forho(var, s, e) int var=s; for(; (int)s<=var && var<(int)e; ++var)//out declaration
#define forhoi(var, s, e) int var=e-1; for(; (int)s<=var && var<(int)e; --var)
#define forc(var, s, e) for(int var=s; (int)s<=var && var<=(int)e; ++var)//for: closed range
#define forci(var, s, e) for(int var=e; (int)s<=var && var<=(int)e; --var)//inversion
#define forco(var, s, e) int var=s; for(; (int)s<=var && var<=(int)e; ++var)//out declaration
#define forcoi(var, s, e) int var=e; for(; (int)s<=var && var<=(int)e; --var)

//Extensions
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
using namespace __gnu_pbds;
using namespace __gnu_cxx;

//Settings
#define endl '\n'//do not use when solving interactive problem!!!

int main(){
  ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  cout<<fixed<<setprecision(21);
  srand((u32)time(0));
  
  while(true){
    int a[3];
    cin>>a[0]>>a[1]>>a[2];
    if(!a[0]&&!a[1]&&!a[2])
      break;
    sort(a, a+3);
    if(a[2]>=a[1]+a[0])
      cout<<"Invalid"<<endl;
    else{
      if(a[0]==a[1]&&a[1]==a[2])
        cout<<"Equilateral"<<endl;
      else if(a[0]==a[1]||a[1]==a[2])
        cout<<"Isosceles"<<endl;
      else
        cout<<"Scalene"<<endl;
    }
  }
  
  return 0;
}

 

 

 

 

플라즈마 IT 블로그 - 코딩 공부 정리, IT 정보 공유

 

https://plasmacodeing.tistory.com/

 

조금이라도 도움이 되었다면 공감 및 댓글 주세요~~

 

 

 

반응형
저작자표시 (새창열림)

'알고리즘 > 백준[BOJ] 오답노트' 카테고리의 다른 글

C++ 소수점 반올림 안됨. fixed가 고장났을때 - 백준 알고리즘 오답노트 2755  (0) 2019.05.07
구름IDE 디버깅 하는 방법 - 백준 알고리즘 오답노트 1913  (0) 2019.05.07
다이나믹 프로그래밍 오버플로어 - 백준 알고리즘 오답노트 1012  (0) 2019.05.07
배열 초기화 방법 fill vs memset - 백준 알고리즘 오답노트 1260  (0) 2019.05.06
C 숫자 각 자리수 분해. 이,일의 자리수 분해 - 백준 알고리즘 오답노트 1110  (0) 2019.05.06
    '알고리즘/백준[BOJ] 오답노트' 카테고리의 다른 글
    • C++ 소수점 반올림 안됨. fixed가 고장났을때 - 백준 알고리즘 오답노트 2755
    • 구름IDE 디버깅 하는 방법 - 백준 알고리즘 오답노트 1913
    • 다이나믹 프로그래밍 오버플로어 - 백준 알고리즘 오답노트 1012
    • 배열 초기화 방법 fill vs memset - 백준 알고리즘 오답노트 1260
    플라즈밍
    플라즈밍
    퀀트 주식투자 자산배분 데이터분석 정보 공유 프로그래밍,투자 주제의 책 강의 리뷰 노하우 전수

    티스토리툴바