250x250
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
- ArrayList
- React
- html
- 초연결사회의 데이터통신과 네트워킹
- reactjs code snippets
- JavaScript
- Algorithm
- 함수
- 자바스크립트
- 데이터통신
- gsap
- scrolly
- 한빛아카데미
- 알고리즘
- prettier-code formatter
- 단어장
- 백준
- 연습문제
- 초연결 사회의 데이터통신과 네트워킹
- Node.js
- java
- 스크롤
- 라이브러리
- JLPT
- 일본어
- quizlet
- ScrollToPlugin
- 자바
- 네트워킹
- 이벤트
Archives
- Today
- Total
umilove98의 블로그
백준 1205 Java 자바 본문
반응형
비오름차순 = 내림차순?
n 이 0인경우 기존 랭크에 등록된 점수가 없는 것이므로 입력값을 1위로 하고 종료
점수가 입력된 랭킹 리스트를 생성해서 그 크기가 p와 같고 마지막 값이 입력점수와 같거나 크면 랭킹 리스트에 들어갈 수 없으므로 -1 출력 (예제2와같음)
위의 경우에 해당하지 않는다면 rank의 초기값을 1위로 놓고 랭킹 리스트를 순회하며 입력점수가 리스트의 값보다 작으면 rank의 값을 1씩 증가시킨다. 입력점수가 어떤 리스트의 값과 같거나 크다면 rank는 해당값의 인덱스번호 + 1 위가 된다.
이렇게 구해진 입력값의 순위가 p보다 작거나 같아서 랭크 리스트에 등록이 가능하다면 해당 순위를 출력
그렇지 않다면 -1을 출력
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Q1205 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int point = Integer.parseInt(st.nextToken());
int p = Integer.parseInt(st.nextToken());
if(n == 0) { //n이 0이라면 기존 rank에 있는 값이 없으므로 해당 입력값이 1위가 된다.
System.out.println(1);
return;
}
StringTokenizer s = new StringTokenizer(br.readLine());
ArrayList<Integer> ranklist = new ArrayList<Integer>(); //랭킹 리스트 생성
for(int i = 0; i < n; i++) {
ranklist.add(Integer.parseInt(s.nextToken()));
}
int rank = 1;
if(ranklist.size() == p && point <= ranklist.get(ranklist.size()-1)) { // 등재가능한 랭킹리스트가 가득 차 있고 입력값이 그 최하위 값과 같거나 작다면 -1을 출력한다.
System.out.println(-1);
return;
}
for(int i = 0; i < n; i++) {
if(point >= ranklist.get(i)) { // 랭킹 리스트의 특정 값보다 크거나 같다면 입력값의 순위는 i+1위가 된다.
rank = i + 1;
break;
}else { // 랭킹 리스트의 특정 값보다 작은 경우 순위를 한단계 낮추고 다음 값과 비교한다.
rank++;
}
}
if(rank <= p) { //정해진 rank가 랭킹 리스트에 들어갈 수 있는 순위이면 rank를 출력 아닌경우 -1 출력
System.out.println(rank);
}else {
System.out.println(-1);
}
}
}
|
cs |
반응형
'algorithm > 백준' 카테고리의 다른 글
백준 1246 Java 자바 (0) | 2021.08.04 |
---|---|
백준 1333 Java 자바 (0) | 2021.08.04 |
백준 1284 Java 자바 (0) | 2021.08.03 |
백준 1388 Java (0) | 2021.08.02 |
백준 1267 Java (0) | 2021.08.02 |