석차 구하기
앞서 선택, 버블 정렬을 살펴보았다._ 이 문제는 정렬의 문제는 아니지만 매커니즘은 정렬과 같다고 생각한다.
이 문제도 비교해주고 설정해주고 우리가 앞에서 보았던 정렬도 비슷하게 비교해주고 설정해주고
다를 것 하나 없다. ㅎㅎ
석차 구하기
문제) 10명의 학생의 점수를 임의로 설정하여 각 학생별로 등수를 매기시오
아래로 내리면 답이 있다. 하지만 이 답을 보기 전 위 문제에 대해 충분히 고민을 했다고 판단되면 그 때 답을 봐도 늦지 않다. 그러니 문제가 어렵고 애매모호 한 사람들을 위해 힌트를 주자면,
Hint - 1 : 남과 비교하기 전까지는 모두 자신이 1등이라고 생각한다.
Hint - 2 : 점수가 클 수록 등수가 높다.
Hint를 봐도 이해가 안간다면 밑으로 내려 답을 봐도 좋다........ㅠㅠ 더 풀어보지ㅠㅠㅠ
그래도 제발 30분만 더 풀어봐줘ㅠㅠ
int[] score = new int[10];
1. for(int i = 0; i < score.length;i++){
score[i] = (int)(Math.random() * 100) + 1;
}
2. int[] rank = new int[score.length];
3. for(int i = 0; i < rank.length; i++){
rank[i] = 1;
}
4. for(int i = 0; i < score.length; i++){
for(int j = 0; j < score.length; j++){
5. if(score[i] < score[j]){
6. rank[i]++;
}
}
}
7. for(int i = 0; i < arr.length; i++){
System.out.println(arr[i] + " : " + rank[i] + "등");
}
문제에 대한 설명.
- 10명의 학생에 1 ~ 100의 점수를 랜덤으로 발생시켜 넣어준다.
- 학생 10명의 등수를 담을 배열을 선언.
- 등수를 모두 1등으로 초기화한다.
- 학생의 크기만큼 배열을 돌리고 학생 한 명과 남은 9명을 전부 비교 해야하기 때문에 이중for문을 돌린다.
- 만약 i 학생의 점수가 j학생의 점수보다 낮을 때에는,
- rank[i] i 학생의 rank를 + 해준다.
- 등수를 i번지에 맞춰 설정했기 때문에 순서를 맞추기 위해 학생, 등수[i]를 동시 출력해준다.
앞서 내가 말한 것 처럼 위 문제가 어려웠던 사람들은 앞으로도 남의 도움이 없이 혼자 해결해 나갔으면 좋겠다.
만약 남이 도와준다면 남의 지식을 내것으로 만들때 까지 복습 또 복습!!!!!!!!!!!!
Author And Source
이 문제에 관하여(석차 구하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sjsrkdgks/석차-구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)