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
- 백엔드
- 크롤링
- 멋사 서류평가
- 알림봇
- 멋사 합격
- 멋쟁이사자처럼 서류
- 디스코드봇
- 웹동아리
- 멋사12
- 멋사11기
- 멋사 면접
- ㅏㄴ
- 깃허브
- 멋사 10기
- 멋사10기
- 멋쟁이사자처럼대학
- API
- 멋쟁이사자처럼11기
- 코딩동아리
- 파이썬 크롤링
- 기사 제목 크롤링
- 멋쟁이 사자처럼
- 멋쟁이사자처럼10기
- django
- 파이썬
- 멋사
- IT동아리
- 멋쟁이사자처럼
- 멋사 서류
- discord
Archives
- Today
- Total
ACHO.pk devlog
[Baekjonn-java] #2075 N번째 큰 수 본문
#2075
문제
N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자.
12 | 7 | 9 | 15 | 5 |
13 | 8 | 11 | 19 | 6 |
21 | 10 | 26 | 31 | 16 |
48 | 14 | 28 | 35 | 25 |
52 | 20 | 32 | 41 | 49 |
이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다.
입력
첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.
출력
첫째 줄에 N번째 큰 수를 출력한다.
일단 선택정렬 알고리즘으로 풀었는데, 시간초과가 나왔다. 자바로 문제를 풀 땐 시간 보너스 5초를 더 주기는 한다고 들었다. 하지만 정렬이 시간 비용이 꽤 커서 시간초과가 나온거같다. 그래서 다른 방법을 생각해서 풀어봐야겠다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
static int sort(int[][] a, int key) {
int []b = new int[key * key ];
int temp = 0;
int k = 0;
//2차원 배열을 1차원 배열로 전환
for(int i = 0; i <= a.length-1; i++)
for(int j = 0; j <= a[i].length-1; j++) {
b[k] = a[i][j];
k++;
}
//선택정렬_내림차순
for(int i = 0; i < k-2; i++) {
for(int j = i+1; j < k; j++) {
if(b[i] < b[j]) {
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
}
}
return b[key-1];
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] Num = new int[N][N];
for(int i = 0; i <= N-1; i++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for(int j = 0; j <= N-1; j++) {
Num[i][j] = Integer.parseInt(st.nextToken());
}
}
int ord = sort(Num, N);
System.out.println(ord);
}
}
'알고리즘 > 백준알고리즘_자바' 카테고리의 다른 글
[Baekjoon-java] #4344 평균은 넘겠지 (0) | 2022.03.30 |
---|---|
[Baekjoon-java] #2562 최댓값과 그 순서 (0) | 2022.03.28 |
[Baekjoon-java] #10818 최소, 최대 (0) | 2022.03.28 |
[Baekjoon-java] #2480 주사위 세 개 (0) | 2022.03.27 |
[Baekjoon-java] #2525 오븐시계 (0) | 2022.03.27 |
Comments