| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- c#기초문법
- c#
- unity게임
- unity게임만들기
- c#코딩기초트레이닝
- 백준 C++
- c#코테
- C#문법
- 백준
- 바킹독알고리즘
- unity3d
- 유니티게임만들기
- c# c#프로그래머스
- 백준 c++ 공부
- c#기본문법
- 백준 구현문제
- Unity
- 백준코딩테스트
- unity3d게임만들기
- 백준코테
- 유니티3dui
- 오블완
- c#프로그래머스기초문법
- 유니티공부
- 유니티서바이벌게임만들기
- 바킹독
- 티스토리챌린지
- unity3dservival
- c#문제
- 유니티
- Today
- Total
나 개발자 진짜 되냐?
백준 C++ 4153번 직각삼각형 ( 피타고라스 정리 ) 본문

벌써 2월 막주..!!
시간 진짜 빠르다..
2월 초에는 22일 언제 오나.. 8일 언제 오나.. 11일 언제 오나.. 그랬는데..
후루룩 갔다.
3월을 또 기다리며!
자! 오늘은
직각삼각형 문제를 풀어보겠습니다!!

앞에 두 개 제곱해서 곱해준 값이 세 번째 값이면 right 출력을 하면 되는데
문제는
000이 나오면 종료해야 하고
아니면 계속 돌려야 하는데
계속 돌리는 와중이면 일단 while 1으로 무제한으로 돌리는 게 맞는 걸까?

라고 생각했는데 틀렸다.
예외... 가 뭘까? 식은 맞은 거 같은데
테스트케이스도 맞았었다.
늘 요즘 이렇게 예외 찾는 게 굉장히 어려운 일이라고 생각이 든다.
일단 혹시 몰라서 사이즈도 바꿔보고
a == 0 도 b 랑 c까지 다해주었다.
근데도 틀렸다..
모르겠어서 반례를 알려달라고 했다.
아차차.....
반례는 이거였다
5 3 4면 어떡할래? 였다.
즉 가장 긴 변이 c여야 하는 거지 모든 값에 c가 제일 큰 값이 들어온다고 말하진 않았다..
와...
무슨 추리소설 읽는 느낌이랄까..
그렇다면!
들어오는 a b c 중에서 가장 큰 수가 무엇인지 찾아야 한다.
배열로 할지, 뭐 if문으로 할지 고민했는데..
제씨는 배열이 가장 깔끔하다고 하여 배열로 풀었다.

이거보다 더 글을 줄일 수 있을 거 같은데... 하며
가장 효율적인 식을 알려달라고 했더니
while문 안에 조건을 두면 0일 때. return을 해줄 필요가 없다고 했다.
while( cin >> a [0] >> a [1] >> a [2] && (a [0] || a [1] || a [2]) ) 이렇게 해주고
cin >> a [0] >> a [1] >> a [2]
이 식은
while문에 넣게 되면 이 세 가지 숫자를 cin으로 받으면 true를 반환한다.
a [0] || a [1] || a [2]
이 식은
세 숫자가 하나라도 0이 아니면 루프를 계속 돌 것이고
0 0 0 이 나오면 or이 틀려서 false가 될 테니 while을 나오게 된다.

더 간결한 식 완성!
예외 생각 못하는 게 조금 아쉬운데..
아니 근데 아무리 생각해도 안 떠오르는걸......
창의력이 부족한가? 아 나 방탈출게임 할 줄 아는데... 후..
과연 나 코테 잘 볼 수 있나 모르겠다ㅏㅏ아
그래도 고생은 했다.
'C++을 시작해봐요! > 단계문제를 풀어보아요!' 카테고리의 다른 글
| 백준 C++ 1978번 소수 찾기 ( 에라토스테네스의 체 ) (1) | 2026.02.25 |
|---|---|
| 백준 C++ 30802번 웰컴키트 ( a를 b개 묶을 때 마법의 공식 ) (1) | 2026.02.24 |
| 백준 C++ 3052번 나머지 ( sort, unique, erase, set ) (0) | 2026.02.19 |
| 백준 C++ 10818번 최소, 최대 ( minmax_element ) (0) | 2026.02.12 |
| 백준 C++ 10250번 ACM 호텔 ( 컴퓨터는 0, 나는 1 ) (0) | 2026.02.11 |