본문 바로가기
코딩테스트/인프런

인프런 JAVA 알고리즘 정리(배열 1번~12번)

by 고구마는호박고구마 2023. 4. 3.

1. 큰 수 출력하기 // 앞이랑 큰값 비교하여 출력 (바로 앞보다 큰 지)

2. 보이는 학생 // max 값 설정하여 큰 값 비교 (전체의 앞보다 큰 지)

3. 가위바위보 // if else 문의로 가위 바위 보 기준에따라 설정

4. 피보나치 수열//(재귀 x) for 문을 돌며 앞 과 뒤수를 바꿔가며 + 

5. 소수 
// Math.abs(x) 절대값 = x가 -3 이면 3 출력  
// Math.pow( x, y ) 제곱 = x 가 2 이며 y 3이면 2의 3승 8 출력
// Math.sqrt(x) 제곱근  = x 25 이면 5 출력


-에라토스테네스 체 (순서대로 소수 체크할 때 활용)
for문을 돌면서 소수를 발견하면 소수의 배수는 모두 1로 체크한다
(체크된 배수들은 소수를 배수로 가지고 있기 떄문에)

 

6. 뒤집은 수// 수를 뒤집고 소수인지 판별

123 -> 321

320 -> 23

1번째 반복 res -> 3  /  2번째 반복 res 32 / 3번째 반복 res 321

7. 점수계산 // 수를 더하는 문제

 

8.등수 구하기 // 2중 for문 돌며 등수 구한다.

 

9. 격자판 최대합 // 행의 합, 열의 합, 대각선의 합 중 가장큰 수 출력 ( 2중 for문 - 행, 열, 대각선 체크)

 

10. 봉우리 // 2차원 행열에서 값이 상,하,좌,우 보다 크면 봉우리 

봉우리 : 10개

1. 각 지점마다 상하좌우 체크하기 

 방향 배열 만들기  // if문 4개 써도 되지만 대각선 까지 체크하게 된다면 8개의 if문을 사용해야 되는 문제 발생

시계방향으로 for문 돌도록

2. 배열의 크기에 벗어나지 않도록 체크하기 (IndexOutOfBoundsException)

4방향을 돌면서 배열의 크기에 벗어나지 않는다면 값 체크 / 크거나 같으면 봉우리 x

 

11. 임시반장 정하기 // 학생들 중 1~5학년을 다니면서 같은반을 많이하는 학생을 반장으로 선거

한 학생당 학년을 돌면서 같은 반이 되있는지 비교
같은 반이 된 친구는 한 번더 체크하면 안됨 -> 바로break

 

12. 멘토링 

 

해시셋타입의 어레이리스트를 선언하여 멘티로 선정할 수 없는 사람을 구하여. 결론은 여집합 형식으로 풀었음

 

 

 

댓글