| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |
| 31 |
- 백준 c++ 공부
- c#코딩기초트레이닝
- unity3d게임만들기
- unity게임
- c#코테
- 백준 구현문제
- 백준
- solved class 2
- 유니티게임만들기
- c++ solved.ac
- 오블완
- 리그오브레전드턴제게임
- 티스토리챌린지
- 유니티서바이벌게임만들기
- 백준코딩테스트
- c#
- c++ 백준
- 바킹독
- unity게임만들기
- c#기초문법
- Unity
- c#기본문법
- C#문법
- unity3dservival
- C++
- 바킹독알고리즘
- 백준코테
- 유니티공부
- 백준 C++
- 유니티
- Today
- Total
나 개발자 진짜 되냐?
코딩테스트 입문 - 삼각형의 완성조건 (2) ( min, max, 패턴 ) 본문

고민이 많은 오늘
문제도 잘 안 풀리고
머리가 터지기 직전이다.
문제는 왜 이리 어려운 것인가....!!!


문제를 대충 이해는 했다.
가장 긴 변 < 나머지 두 변의 합
1. 둘 중 하나의 숫자가 최대 긴 경우
작은 숫자 + 새로운 문자 ( C ) > 큰 숫자
11 이랑 7일 때
7 + c > 11
하지만 c는 11보단 클 수 없으니
c는 5부터 11까지
2 새로 들어올 애가 최대 긴 경우
작은 숫자 + 큰 숫자 > C
11 + 7 > C
일 테니
11보다 큰 12부터 17까지
근데 이 경우의 수를 if문으로 해야 할지가 좀 의문이다.

그래도 나름 머리 써서 풀어보았다.
근데 자꾸 테스트케이스 두 개가 틀린다.
뭐가 문제일까..?
인지 씨한테 결국 물었다.
인지 씨가 원소가 최대 1000인걸 고려해야 한다고 했다
그래서 1000까지 했는데..?
라고 하니
만약에 small 1000에 big 1000이 나오면 어떡할 거냐고 했다.
삼각형의 절대 법칙
가장 긴 변이.. c라면..
1000 + C > 1000
c > 0;
그러면 0부터 1000까지
1000 + 1000 > C
C < 2000
1001부터 2000까지
여야 하니.. c는 2000까지 최소 나올 거고
그럼 1111로는 택도 없다는 것이다.

수정!
뿌듯해지던 찰나..
갑자기 나에게..

그렇게 쉬운 게 있었으면 진작 알려줘야지......
나도 문제를 풀면서 대충 짐작했었다.
가장 큰 숫자와 c의 범위가
연속된다는 것을..
더 쉽고, 다르게 표현하면
가장 긴 변이 big일 때엔
범위가 small의 값과 같고,
가장 긴 변이 C일 땐
small -1 값과 같았다.
예시로 11과 7을 보면
최대 길이가 11 일 땐
5,6,7,8,9,10,11로 총 7개다. = small 크기
그리고 최대 길이가 C 일려면
12,13,14,15,16,17 총 6개다 small 크기 - 1
그럼 그냥
small * 2 -1 해주면 된다.

ㅋ
너무 어이가 없고
.. 음

1점인 것도 어이없다.
내 방식대로 풀 수 있어서 좋긴 했는데
이런 패턴 파악했으면..
더 쉽고 간단하게 풀었을 것을..
한 시간이 걸려부렸다...ㅋㅋ
풀 수 있음에 만족하고 뿌듯해하자..^^
'프로그래머스를 풀어보아요! > C++' 카테고리의 다른 글
| 코딩테스트 입문 - 평행 ( 기울기 구하는 법 ) (0) | 2026.05.19 |
|---|---|
| 코딩테스트 입문 - 외계어 사전 ( find 사용법 ) (0) | 2026.05.18 |
| 코딩테스트 입문 - 최댓값 만들기 (2) ( size()-1 ) (0) | 2026.05.18 |
| 코딩테스트 입문 - 숨어있는 숫자의 덧셈 (2) ( isdigit() ) (0) | 2026.05.18 |
| 코딩테스트 입문 - 캐릭터의 좌표 ( clamp ) (0) | 2026.05.16 |
