Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Android
- Spring Boot
- spring
- jpa
- http
- Greedy
- 그리디
- pointcut
- db
- kotlin
- 인프런
- SpringBoot
- java
- 김영한
- 스프링 핵심 기능
- Servlet
- 백준
- springdatajpa
- 스프링 핵심 원리
- Exception
- AOP
- JDBC
- QueryDSL
- 자바
- 알고리즘
- JPQL
- 스프링
- Proxy
- transaction
- Thymeleaf
Archives
- Today
- Total
개발자되기 프로젝트
알고리즘 문제 풀이: min, max 값 찾기 본문
- 10개의 숫자를 입력받는다.
- 10개의 숫자 중 가장 큰 값과 가장 작은 값을 찾는다.
- 몇 번째 수인지 찾는다.
- 반복문을 한 번만 사용한다.
- 예 : 10, 65, 84, 22, 42, 100, 210, 85, 87, 32 가 주어진 경우
max : 210, 7번 째
min : 10, 1번 째 - 얼마나 효율적인 알고리즘을 만드느냐가 중요함.
- 하나의 변수를 지정해 주고, 해당 변수를 update를 진행.
- Time complexity?
for문이 얼마나 중첩되어 있냐?
for문이 도는데. 뭐에 dependent하냐?
public class MinMaxProblem {
public static void main(String[] args) {
int n = 10;
Scanner sc = new Scanner(System.in);
int maxPos = 0;
int minPos = 0;
int max = sc.nextInt();
int min = max;
for(int i = 1; i < n; i++){
int x = sc.nextInt();
if(x>max){
max = x;
maxPos = i;
}
if(x < min){
min = x;
minPos = i;
}
}
System.out.println("max값은 : " + max);
System.out.println("위치는 : " + (maxPos+1)+ "번 째 입니다.");
System.out.println("min값은 : " + min);
System.out.println("위치는 " + (minPos+1) + "번 째 입니다.");
}
}
10, 65, 84, 22, 42, 100, 210, 85, 87, 32 를 순서대로 입력한 결과이다.
max값은 : 210
위치는 : 7번 째 입니다.
min값은 : 10
위치는 1번 째 입니다.
time complexity : O(n), 문제를 해결하기 위한 단계의 수와 입력값 n이 1:1 관계, linear
'Java > 알고리즘' 카테고리의 다른 글
DFS(Depth - Fist Search) : 개념, 예시 (0) | 2021.06.04 |
---|---|
평균 수행시간이 O(logN)인 알고리즘 : Heap 정렬 & element 삭제 (0) | 2021.06.01 |
평균 수행시간이 O(logN)인 알고리즘 : Heap 정렬 & element 추가 (0) | 2021.06.01 |
평균 수행시간이 O(n^2)인 알고리즘 (0) | 2021.05.31 |
정렬된 수 에서 특정 수의 위치 찾기 : binary search (0) | 2021.05.31 |
Comments