[백준] 4153번: 직각삼각형 C++로 풀어보기

2023. 7. 1. 23:56·Algorithm/Baekjoon(C++)

백준 4153번 설명

 

 

어떻게 풀까? (문제를 풀고 처음 든 생각)

주어진 세변의 길이가 직각인지 아닌지 구분하려면
a의 제곱 + b의 제곱 = c의 제곱이 되어야한다.
이 때 c는 a나 b보다 큰 수여야 한다.

각 테스트케이스는 모두 30000보다 작은 양의 정수로 주어졌으므로 int를 써도 될 것 같다.

 

  1. while문을 써서 무한반복을 한다.
  2. 숫자 3개를 입력받는다.
  3. 만약 숫자 3개가 다 0이면 break를 써서 while문을 빠져나와 프로그램이 종료가 된다.
  4. 숫자 3개를 배열 안에 넣는다.
  5. 배열을 오름차순으로 정렬한다.
  6. 첫번째 배열 값의 제곱과 두번째 배열 값의 제곱의 합이 세번째 배열 값의 제곱과 같은지 확인한다.
  7. 맞으면 right를, 틀리면 wrong을 출력한다.

 

 

코드
#include <bits/stdc++.h>
using namespace std;


int main() {

	while(1) {
		int arr[3] = { 1,1,1 }; // 배열 초기화
		int a, b, c;
		cin >> a >> b >> c;
		if (a == 0 && b == 0 && c == 0) { // 만약 수가 다 0이면
			break; // while문 탈출
		}
		arr[0] = a;
		arr[1] = b;
		arr[2] = c;
		sort(arr, arr + 3); // 배열 오름차순으로 정렬
		if ((arr[0] * arr[0]) + (arr[1] * arr[1]) == arr[2] * arr[2]){ // a^2 + b^2 = c^2이라면
			cout << "right\n";
		}
		else { // 아니라면
			cout << "wrong\n";
		}
	}
}

 

결과

4153번 제출 결과

다행히도 한 번에 맞았다!

 

후기

제곱을 할 때 arr[n] * arr[n]이 아니라 pow(arr[n], 2)를 써도 좋았을 것 같다.

순간적으로 배열을 정렬하는 방법이 잘 기억이 나지 않았다. sort(arr, arr + 배열의 크기)를 잊지말자.

(내림차순은 sort(arr, arr + 배열의 크기, greater<자료형>())을 사용하면 된다.)

저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Baekjoon(C++)' 카테고리의 다른 글

[백준] 1874번: 스택 수열 C++로 풀어보기  (0) 2023.07.17
[백준] 5397번: 키로거 C++로 풀어보기  (0) 2023.07.15
[백준] 1919번: 애너그램 만들기 C++로 풀어보기  (0) 2023.07.15
[백준] 2609번: 최대공약수와 최소공배수 C++로 풀어보기  (0) 2023.07.13
[백준] 27866번: 문자와 문자열 C++로 풀어보기  (0) 2023.07.13
'Algorithm/Baekjoon(C++)' 카테고리의 다른 글
  • [백준] 5397번: 키로거 C++로 풀어보기
  • [백준] 1919번: 애너그램 만들기 C++로 풀어보기
  • [백준] 2609번: 최대공약수와 최소공배수 C++로 풀어보기
  • [백준] 27866번: 문자와 문자열 C++로 풀어보기
퀵차분
퀵차분
Web Developer 🥐
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (167)
      • Frontend (28)
        • HTML, CSS (7)
        • Javascript (3)
        • React (11)
        • Typescript (2)
        • Next.js (4)
      • Node.js (3)
      • Fedify (2)
      • Study (40)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (20)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (7)
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리액트
    프론트엔드
    오블완
    티스토리챌린지
    typescript
    시스템프로그래밍
    자바스크립트
    백준
    javascript
    프로그래머스
    프로그래머스 자바스크립트
    음악추천
    next.js
    react
    타입스크립트
    KUIT
    알고리즘
    인공지능
    HTML
    프롬프트 엔지니어링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[백준] 4153번: 직각삼각형 C++로 풀어보기
상단으로

티스토리툴바