
질문이 간단한 만큼 답도 간단하겠군요.

라고 생각하던 찰나
이게 도대체 무슨 일이지요.
도와줘 GPT

역시 GPT다
처음의 초기화 부분이 잘못 되었다고 합니다.
제가 참고한 블로그에서는 잘 나왔는데

이해가 잘 안되는 부분이었으니 제 나름대로 변형 후 써봤는데, 그게 틀렸다네요. 아직도 모르겠습니다.
- myMin → int.MaxValue (가능한 가장 큰 값)으로 초기화 → 실제 배열 값과 비교하면 무조건 갱신됨
- myMax → int.MinValue (가능한 가장 작은 값)으로 초기화 → 실제 배열 값과 비교하면 무조건 갱신됨
이게 이 뜻이라는데, 왜 이 뜻이 되는지 아주 미스터리 입니다. 영단어 같은 거겠죠. 이거 이렇게 쓰면 이렇게 된다 하고 외워야 되는 것 같습니다
결국
int myMin = int.MaxValue, myMax = int.MinValue;
와
.int min = number[0];
int max = number[0];
가 같은 결과가 나왔는데, 무슨 차이일까요.
✅ 특징
- 최댓값을 구할 때 → int.MinValue로 초기화
- 최솟값을 구할 때 → int.MaxValue로 초기화
- 배열이 어떤 값이든 상관없이 무조건 비교 갱신됨
- 안전하지만, 비교할 때마다 처음에 극단값과 비교해야 해서 약간 직관성이 떨어짐
✅ 특징
- 배열의 첫 번째 값을 초기값으로 사용
- 이후 나머지 요소들과만 비교하면서 최솟값/최댓값 갱신
- 더 직관적이고 깔끔함
- 하지만, 배열이 비어있으면 오류 발생 (number[0] 접근 불가)
그래서 GPT에게 두 경우를 비교해 달라고 부탁했습니다.
🔎 차이점 정리
구분코드 1 (int.MinValue/MaxValue)코드 2 (첫 번째 원소)

| 초기화 방식 | 극단값(int.MaxValue, int.MinValue) 사용 | 배열의 첫 번째 값 사용 |
| 안정성 | 배열이 비어 있어도 초기화 가능 (단, 루프 안이 실행 안 됨) | 배열이 비어 있으면 IndexOutOfRangeException 발생 |
| 직관성 | 비교할 때 "의미 없는 큰/작은 값"과 먼저 비교해야 해서 덜 직관적 | 배열 안 값으로 바로 시작 → 직관적 |
| 추천 상황 | 배열이 비어 있을 수도 있는 경우 | 배열이 반드시 1개 이상 값이 있는 경우 |
코드1 은 최대값과 최소값을 그때 그때 비교하는거고, 코드2는 배열의 첫 번째 값을 초기값으로 사용한다고 합니다.
신기하게 장단점이 있네요.

'공부 > 게임 공부' 카테고리의 다른 글
| Unity로 결과 화면 나타내기 (1) | 2025.09.10 |
|---|---|
| Unity 풍선 지키기 게임 (0) | 2025.09.04 |
| 코딩 실습 경험자 Lv2-5 [구구단 출력] (0) | 2025.09.03 |
| 코딩 실습 경험자 Lv2-4 [숫자 맞추기 게임] (0) | 2025.09.03 |
| 코딩 실습 경험자 Lv2-3 [팩토리얼] (0) | 2025.09.03 |