문제
https://www.acmicpc.net/problem/18870
문제 설명
문제 풀이
코드
import java.util.*;
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
Map<Integer, Integer> map = new HashMap<>();
int N = Integer.parseInt(br.readLine());
int[] input = new int[N];
int[] zip = new int[N];
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
input[i] = zip[i] = num;
}
Arrays.sort(zip);
int value = 0;
for (int key : zip) {
if (!map.containsKey(key)) {
map.put(key, value++);
}
}
for (int i : input) {
bw.write(map.get(i) + " ");
}
bw.close();
}
}
<시간 초과>
import java.util.*;
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
Map<Integer, Integer> map = new HashMap<>();
int N = Integer.parseInt(br.readLine());
List<Integer> input = new ArrayList<>();
List<Integer> zip = new ArrayList<>();
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
input.add(num);
if (!zip.contains(num)) {
zip.add(num);
}
}
Collections.sort(zip);
for (int i = 0; i < zip.size(); i++) {
if (!map.containsKey(zip.get(i))) {
map.put(zip.get(i), i);
}
}
for (int i : input) {
bw.write(map.get(i) + " ");
}
bw.close();
}
}
'🧑💻코딩 테스트 > 백준 (BOJ)' 카테고리의 다른 글
[코딩테스트/백준 알고리즘] 1697번 - 숨바꼭질 (Java, 자바 풀이) (0) | 2022.12.26 |
---|---|
[코딩테스트/백준 알고리즘] 11724번 - 연결 요소의 개수 (Java, 자바 풀이) (0) | 2022.12.22 |
[코딩테스트/백준 알고리즘] 1012번 - 유기농 배추 (Java, 자바 풀이) (0) | 2022.12.20 |
[코딩 테스트/백준 알고리즘] 5430번 - AC (Java, 자바 풀이) (0) | 2022.12.16 |
[코딩테스트/백준 알고리즘] 2606번 - 바이러스 (Java, 자바 풀이) (0) | 2022.12.15 |
댓글