안녕하세요!
오늘도 게임개발자가 되기위해 공부하고 있는 구구입니다.
오늘부터는 자료구조에 대해서도 병행하면서 공부하려고 하는데 자료구조의 시작인
선형자료구조부터 공부를 시작하려 합니다.
- 배열
- 많은 데이터를 관리하기 위해 사용하는 것
- 비슷한 성질의 데이터를 그룹화 하여 관리
- 배열의 선언 방법
string[] book = new string[100];
- 배열의 특징
- 구조가 간단
- index가 있어서 접근이 가능함
- 범위 밖의 index는 처리가 안됨(index out of range)
- 요소의 삭제/추가를 통한 배열의 크기 재조정이 어려움.
- 배열 예제
1. 로또 번호 6자리를 뽑아보기
2. 번호는 1번부터 45번까지 있음
3. 번호는 서로 중복이 안됨
출력 예시
우선 무작위 숫자를 출력해야 하므로 random을 써야할것 같다는 생각이 바로들었습니다.
또한 로또는 6자리이므로 배열은 6자리일 것이고 중복이 안되야 하기 때문에 중복과 관련된 함수도 필요할 것 같습니다.
그리고 출력하는 함수도 만들면 좋을것 같습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _01_MyLotto
{
class Lotto
{
private int[] LottoGuess = new int[6];
public Lotto()
{
for(int i = 0; i < LottoGuess.Length; i++)
{
while (true)
{
Random random = new Random();
int a = random.Next(1, 46);
if (CheckNum(a, LottoGuess))
{
LottoGuess[i] = a;
break;
}
}
}
}
public void ShowNumber()
{
Console.WriteLine("== 로또 번호 공개 ==");
foreach(int i in LottoGuess)
{
Console.Write("{0} ", i);
}
Console.WriteLine();
}
private bool CheckNum(int _a, int[] _LottoGuess) // 중복이 없을 경우 true 중복이 있다면 false 반환
{
for(int i = 0; i < LottoGuess.Length; i++)
{
if (_LottoGuess[i] == _a)
{
return false;
}
}
return true;
}
}
internal class Program
{
static void Main(string[] args)
{
Lotto LottoNumber = new Lotto();
LottoNumber.ShowNumber();
}
}
}
해당 문제는 제가 직접 푼 것이고 이것이 꼭 정답은 아니며 어떠한 방식이든 배열을 이용해서
중복되지 않는 6자리 숫자를 출력하는 것이 중요하다고 생각합니다.
오늘은 여기까지 하도록 하겠습니다.
'게임 개발 공부 > 자료구조' 카테고리의 다른 글
알고리즘 1(재귀호출) (0) | 2022.01.02 |
---|---|
선형 자료구조 5(해쉬테이블 & 딕셔너리) (0) | 2022.01.01 |
선형 자료구조 4 (큐) (0) | 2021.12.31 |
선형 자료구조 3 (스택) (0) | 2021.12.30 |
선형 자료구조 2 (리스트) (0) | 2021.12.28 |
댓글