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 |
Tags
- containsKey
- 그리디알고리즘
- ORA-91917
- 코딩테스트
- 파이썬
- java17
- oracle error
- SQLD교재추천
- spring mvc 기초
- java문법
- 비전공 개발자
- 스택
- 비전공개발자취업
- it국비학원 후기
- 큐
- 개발자면접질문
- kh정보교육원 후기
- 국비학원
- 최신java
- 비전공개발자
- 예제
- containsValue
- 국비학원 후기
- 국비학원 추천
- Jpa기초
- sql developer logon denied
- ClassNotFoundException
- 소수점출력
- 비전공 국비학원
- ip란
Archives
- Today
- Total
Developer J
이코테 - 그리디 알고리즘 풀이 Python Java 본문
반응형
문제
파이썬 풀이
n = int(input())
data = list(map(int, input().split()))
data.sort()
result = 0
count = 0
for i in data:
count += 1
if count >= i:
result += 1
count = 0
print(result)
JAVA 풀이
import java.util.*;
public class Main{
public static int n;
public static ArrayList<Integer> arrayList = new ArrayList<>();
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for(int i=0 ; i < n ; i++){
arrayList.add(sc.nextInt());
}
Collections.sort(arrayList);
int result = 0;
int count = 0;
for(int i=0; i<n ;i++){
count+=1;
if(count >= arrayList.get(i)){
result += 1;
count = 0;
}
}
System.out.println(result);
}
}
해설
오름차순으로 정렬하고, 공포도가 낮은 모험가부터 하나씩 확인한다.
그 후 모든 모험가들을 차례대로 검사한다.
- 현재 모험가의 공포도가 그룹인원보다 높다면 그룹인원에 추가하고 다음 모험가를 탐색한다.
- 현재 모험가의 공포도가 그룹인원과 같다면 그룹을 경성해 여행을 떠난다.
그리고 다음 모험가를 탐색하며 새로운 그룹을 만든다.
좋은 강의를 제공해주는 "동빈나"님께 감사를 드린다
반응형
'개발자 되기 part1 > 알고리즘' 카테고리의 다른 글
이코테 - 곱하기 혹은 더하기 Python (0) | 2021.04.13 |
---|