๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2890)
< ์นด์ฝ >
๋ฌธ์ ํ์ด
F์ ์์น์ ๋ง์ง๋ง ์ซ์์ ์์น ์ฐจ์ด๋ฅผ ๊ตฌํ ํ ArrayList์ ์ ์ฅํ๋ค. ์ฐจ์ด๊ฐ ์์ ์์๋ก ์ ๋ ฌํ๋ค. ๊ทธ ํ ์์๋๋ก ๋ฑ์๋ฅผ ์ถ๋ ฅํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.StringTokenizer;
public class _2890_ { // ์นด์ฝ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int r = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
ArrayList<int[]> arr = new ArrayList<>();
for (int i = 0; i < r; i++) {
String str = bf.readLine();
int start = -1;
int num = -1;
int diff = 0;
for (int j = 0; j < c; j++) {
char x = str.charAt(j);
if (Character.isDigit(x)) {
start = j;
num = x - '0';
} else if (x == 'F') {
diff = c - 1 - start;
}
}
if (num != -1) {
arr.add(new int[] { num, diff });
}
}
arr.sort(new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[1] - o2[1];
}
});
int result[] = new int[10];
int diff = 0;
int idx = 0;
for (int i = 0; i < 9; i++) {
if (diff != arr.get(i)[1]) {
result[arr.get(i)[0]] = ++idx;
diff = arr.get(i)[1];
} else {
result[arr.get(i)[0]] = idx;
}
}
for (int i = 1; i < 10; i++) {
bw.write(result[i] + "\n");
}
bw.flush();
}
}
๋ณ์)
r, c : ํ, ์ด
arr : ArrayList <int [ํ ๋ฒํธ, ์ฐจ์ด]>
str : ํ
start, num, diff : ๋ง์ง๋ง ์ซ์ ์์น, ํ ๋ฒํธ, F์ ๋ง์ง๋ง ์ซ์ ์์น ์ฐจ์ด
result : ๋ฑ์
diff, idx : ์ ํ์ ๊ฒฐ์น์ ๊ณผ ๋จ์ด์ง ๊ฑฐ๋ฆฌ, ๋ฑ์
์์ฑ ์ง๋๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ ๊ฐ ํ ๋ฒํธ๊ฐ ๋ง์ง๋ง์ผ๋ก ์ฃผ์ด์ง ์ธ๋ฑ์ค์ F์ ์ธ๋ฑ์ค ์ฐจ์ด๋ฅผ ๊ตฌํด ArrayList์ ์ ์ฅํ๋ค. ๊ทธ ํ ์ฐจ์ด๊ฐ ์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค. ArrayList๋ฅผ ๋ณด๋ฉด์ ๋ฑ์๋ฅผ ๊ฒฐ์ ํด์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1238_ํํฐ (1) | 2024.01.08 |
---|---|
[Baekjoon] 1895_ํํฐ (1) | 2024.01.05 |
[Baekjoon] 9237_์ด์ฅ๋ ์ด๋ (1) | 2024.01.03 |
[Baekjoon] 14469_์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 3 (1) | 2024.01.02 |
[Baekjoon] 11501_์ฃผ์ (2) | 2023.12.29 |