자료구조와 알고리듬 With Java/[인프런] Algorithm

Chapter 02. Array (1, 2차원 배열)

계란💕 2022. 4. 11. 16:01

1. 큰 수 출력하기

java
열기

  Note)

  - arrayList<> 형태로 반환하는 solution메서드 만든다.

  - solution(n, arr)을 for문에 넣고 하나씩 출력한다.

  - 배열의 맨 앞에 있는 값은 일단 넣는다.

 

 

2. 보이는 학생

java
열기

  Note)

  - int형  변수 max를 정한다. (초깃값은 배열의 맨 앞 값)

 

 

3. 가위바위보

java
열기

 

 

4. 피보나치 수열

java
열기

  Note)

  - solution을 배열 형태로 반환한다.

  - 피보나치 수열의 각 항을 한 개씩 출력하도록 작성한다.

   

 

5. 에라토스테네스의 체

java
열기

  Note)

  - 2부터 시작해서 입력받은 n까지 for문을 실행한다.

    -> 2의 배수, 3의 배수인 index에 대해 ch[i]에 1을 넣는다.

    -> ch[i] 가 0이면 소수이므로 카운트해서 반환하면 소수의 개수가 출력된다.

 

 

 

6. 뒤집은 소수

java
열기

  Note)

  - 소수인지 판단하기위해  isPrime()을 만든다.

 

 

7. 점수계산

java
열기

  Note)

  - cnt가 증가할 때마다 answer에 cnt를 누적시킨다.

  - arr[i]가 1일 때만 cnt증가 & answer에 누적한다.

 

 

8. 등수 구하기

java
열기

  Note)

  - arr[i] 보다 큰 arr[j]의 개수에 따라 cnt가 하나씩 증가한다.

  - 각각의 cnt에 대해 answer배열에 추가한다.

  - 순위를 세는 cnt는 1부터 시작한다.

 

 

9. 격자판 최대합

java
열기

  Note)

  - 2차원 배열을 이용한다.

  - 가로줄 세로줄 대각선끼리의 합을 구해서 max와 비교한다.

  -  Math클래스의 max()메서드를 이용한다.

 

 

 

10. 봉우리

java
열기

 

 

 

11. 임시 반장 선정하기

java
열기

  Note)

  - i, j : 학생, (1 ~ n명 까지) , k : 1 ~5 (5학년 까지)

  - i, j가 같은 경우도 카운트해도 상관없다. 모든 학생에게 동등한 조건이기 때문.

  - 3중 for문 이용한다.

  - arr[][]은 n명의 학생에 대한 5학년 까지의 반 정보를 나타낸 것이다.

     -> index를 1부터 시작하기 위해 arr[n+1][5+1]로 사이즈를 맞춘다.

 

 

12. 멘토링

java
열기

  Note)

  - i: 멘토,  j: 멘티

  - k: 테스트 번호 ( 0번째 시험 ~ (m - 1)번째 시험 )

  - s: 0등 ~ (n - 1)등 까지

  - pi: i번 학생의 등수, pj: j번 학생의 등수

  - 시험 횟수: m, 학생 수: n 

  - 4중 for문을 이용한다.

  - 포인터 변수 pi, pj를 이용한다.

  - 자기 자신끼리 멘토 - 멘티가 되는 경우도 함께 카운트해도 상관 없다.

  - cnt가 테스트 횟수 m과 같아지면  m번 모두 앞서 있다는 뜻이므로 answer ++