💙 들어가며 로또와 오목게임을 다지기 위한 초석. 배열의 배열, 2차 배열의 원리에 대해서 알아보자. ✏️ 학습내용 정리 #2차 배열이란? 지금까지는 1차 배열만을 가지고 여러 값을 하나의 변수에 담아서 사용하였다. 그런데 이제부터는 마치 1차 배열을 값처럼 다루는 상위 배열, 2차 배열에 대해서 알아볼 필요가 있겠다. 2차 배열은 왜 필요할까? 어떨 때 필요할까? 로또를 생각해보자. 로또 5,000원권을 구매하면 다음과 같이 A부터 E까지 6개의 값이 들어간 배열이 총 5줄 있었다. 여태까지 배운 1차 배열은 6개의 값을 한 번에 담을 수는 있었지만, (A, B, C, D, E 배열 각각 독립적으로 존재) 각각의 배열로 존재했지, 5개의 배열을 다시 하나로 묶을 수는 없었다. (원하는 것은 A, B, ..
💙 들어가며 값을 꼭 내가 지정해서 넣어주거나 반복문을 통해 순차적으로 대입해야 할까? Random클래스를 사용해서 랜덤으로 데이터를 채워보자. ✏️ 학습내용 정리 #Random 클래스 만약 어떤 필요에 의해서 값을 랜덤하게 받아보고 싶다면 Random클래스를 사용할 수 있다. 순차적이지 않은 값들도 알아서 출력해주는 똑똑한 자바덕분에 여러 기능에 활용할 수 있겠다. 한 가지 이해해두어야 할 것은 Random클래스를 통해서 우리가 랜덤하게 받아볼 수 있는 것은 숫자라는 점이다. 랜덤한 문자는 만들 수 없다. #활용방법 그렇다면 구체적으로 Random클래스를 활용해서 랜덤값을 받으려면 어떻게 해야 할까? 위에서 살짝 언급했듯이 이 클래스를 통해서는 숫자가 생성되기 때문에 신박하게도 여기서 nextInt 메..
💙 들어가며지난 시간에 자리를 바꾸는 방법에 대해서 간단하게 다루었다. 오늘은 배열과 반복문을 활용해서 본격적으로 값의 순서를 바꾸는 정렬을 해보고, 정렬의 2가지 방법에 대해서 익혀보자. ✏️ 학습내용 정리#버블정렬(뒤부터 오름차순, 내림차순)가장 큰 값을 맨 뒤로 보내는 작업이다. 마치 부력이 가장 큰 버블이 맨 위로 올라가는 것같은 모양에서 이름이 지어졌다고 한다. 버블정렬을 하기 위해서는 반복문이 2개 필요하다. (이중 for문) 그리고 2개의 값을 가지고 비교하는 작업이기 때문에 우선 2개의 반복문의 횟수는 값의 갯수(length)보다는 1개가 적다.하지만 큰 반복문과 작은 반복문의 인덱스는 성격이 다르다. 결론부터 말하자면 바깥의 for문은 인덱스가 고정되어 있는 반면에 (length-1) 안..
💙 들어가며 지난 시간에 배운 배열로 값을 일괄로 받아오는 것이 가능해졌다. 그럼 이 여러 값의 덩어리를 가지고 어떤 연산을 해볼 수 있을까? 배열을 이용해 값의 위치를 바꾸고 정렬해보자. ✏️ 학습내용 정리 #값과 인덱스 순서 배열에 들어가는 값은 어떤 순서를 가지고 있다. (=인덱스) 값으로 비교하면 제일 값과 제일 작은 값이라는 순서가 있고 또 그에 따른 인덱스 역시 순서이다. 이 녀석들을 이용하면 다음의 연산을 해볼 수 있다. #자리 뺏기 먼저 해볼 것은 자리를 뺏는 것이다. max라는 변수를 하나 선언하고 값을 비교하면서 더 큰 값일 경우에 max에 대입한다. 하나씩 비교하면서 max의 자리를 바꾸게 된다. 이렇게 모든 배열을 찾아 나가면 가장 큰 값을 찾을 수 있게 된다. 여기서 반복문의 횟수..
💙 들어가며 do while문을 통해 반복, 입력, 검사 등의 흐름을 제어하고, switch문을 활용해 특정 입력에 대한 결과를 세팅해보자. ✏️ 학습내용 정리 #오목게임 만들기 시작 우리는 이미 while문을 활용하는 방법을 알고 있다. 조건이 참일 경우에 원하는 연산을 반복해서 실행시킬 수 있다. 여기서부터 오목게임을 만들어볼 것이다. (오목게임 대장정의 시작) 반복문을 활용해서 바둑판을 만들고, x와 y 두 가지의 값을 받아 x나 y가 -1일 때 먼저 break로 나가게 해보자. 🚨조건문을 사용할 때는 먼저 걸러져야 할 경우의 수를 따지자. while(true){ Scanner scan = new Scanner(System.in); int ox = -1; int oy = -1; //사용자의 이해를 ..