๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2697)
< ๋ค์์ ๊ตฌํ๊ธฐ >
๋ฌธ์ ํ์ด
๋ฌธ์ ์์์์ ์ฃผ์ด์ง 279134399742๋ฅผ ๊ฐ์ง๊ณ ์ค๋ช ํด ๋ณด์.
๋ค์์๋ถํฐ ๊ฐ์ ํ์ธํ๋ฉด์ ํ์ฌ ์์น ๊ฐ๋ณด๋ค ๋ค์ ์๋ ๊ฐ ์ค์์ ํฐ ๊ฐ์ด ์๋์ง ํ์ธํ๋ค.
๋จผ์ , 2๋ ๋ง์ง๋ง ๊ฐ์ด๋ฏ๋ก ๋์ด๊ฐ๋ค.
๋ค์ ๊ฐ์ธ 4๋ฅผ ํ์ธํ์ ๋ ๋ค์ 2๋ฐ์ ์์ผ๋ฏ๋ก ๋์ด๊ฐ๋ค.
๊ทธ๋ค์์ 7์ด์ง๋ง ๋ค์ 7๋ณด๋ค ํฐ ๊ฐ์ด ์์ผ๋ฏ๋ก ๋์ด๊ฐ๋ค.
์ด๋ ๊ฒ ์งํํ์ ๊ฒฝ์ฐ 3์ผ ๋ ๋ค์ ํฐ ๊ฐ์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด๋ 3๋ณด๋ค ํฐ ๊ฐ์ด 9,9,7,4์ ๊ฐ์ด 4๊ฐ ์์ง๋ง ๋ค์ ์๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด 4๋ก ๊ต์ฒดํ๋ค. ๊ทธ๋ผ 2791344๊ฐ ๋๊ณ ๋จ์์๋ 39972๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด ์ถ๋ ฅํ๋ค.
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.Collections;
public class _2697_ { // ๋ค์์ ๊ตฌํ๊ธฐ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(bf.readLine());
for (int i = 0; i < t; i++) {
String a = bf.readLine();
ArrayList<Integer> list = new ArrayList<>();
int idx = -1;
int num = -1;
for (int j = a.length() - 1; j >= 0; j--) {
list.add(a.charAt(j) - '0');
Collections.sort(list, Collections.reverseOrder());
if (list.get(0) != a.charAt(j) - '0') {
idx = j;
for (int k = list.size() - 1; k >= 0; k--) {
if (a.charAt(j) - '0' < list.get(k)) {
num = list.get(k);
break;
}
}
break;
}
}
if (idx == -1) {
bw.write("BIGGEST\n");
} else {
String result = a.substring(0, idx);
result += num;
boolean flag = false;
Collections.sort(list);
for (int j = 0; j < list.size(); j++) {
if (!flag && list.get(j) == num) {
flag = true;
continue;
}
result += list.get(j);
}
bw.write(result + "\n");
}
}
bw.flush();
}
}
๋ณ์)
t : ํ ์คํธ ์ผ์ด์ค ๊ฐ์
a : ์ A
list : ํ์ฌ ๊ฐ๋ณด๋ค ํฐ ์๋ฅผ ์ฐพ๊ธฐ ์ํ ๋ฆฌ์คํธ
idx : ํฐ ์๋ก ๊ต์ฒดํ ์ธ๋ฑ์ค
num : ํฐ ์๋ก ๊ต์ฒดํ ๊ฐ
result : ๋ค์ ์
ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋งํผ ์ A๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. A๋ฅผ ๊ฐ์ง๊ณ ๋ค์ ๊ณผ์ ์ ์ํํ๋ค.
1) A๋ฅผ ๋ค์์๋ถํฐ ํ์ํ๋ฉฐ list์ ์ถ๊ฐํ๋ค.
2) list๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ 0๋ฒ์งธ ๊ฐ๊ณผ ๋ฐฉ๊ธ ์ถ๊ฐํ ๊ฐ์ด ์ผ์นํ๋์ง ํ์ธํ๋ค.
3) ์ผ์นํ๋ฉด ํ์ฌ ๊ฐ๋ณด๋ค ํฐ ๊ฐ์ด ์์ผ๋ฏ๋ก ๊ณ์ํด์ ๋ฐ๋ณตํ๋ค. ์ผ์นํ์ง ์๋ค๋ฉด ํ์ฌ ๊ฐ๋ณด๋ค ํฐ ๊ฐ์ด ์๋ค๋ ๋ป์ด๋ฏ๋ก idx๋ฅผ ํ์ฌ ์์น๋ก ์ ์ฅํ๋ค. list์ ์๋ ๊ฐ์ ํ์ํ๋ฉฐ ํ์ฌ ๊ฐ๋ณด๋ค ํฐ ๊ฐ ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ฐพ์ num์ ์ ์ฅํ ํ ์ข ๋ฃํ๋ค.
๋ง์ฝ idx ๊ฐ์ด -1์ด๋ฉด ๋ค์์๊ฐ ์๋ค๋ ๋ป์ด๋ฏ๋ก "BIGGEEST"๋ฅผ ์ถ๋ ฅํ๋ค. idx ๊ฐ์ด ์๋ค๋ฉด result๋ฅผ A์ 0๋ถํฐ idx์ ๊น์ง ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ค. ๊ทธ๋ค์ ๋ฐ๊ฟ ๊ฐ์ธ num์ ์ถ๊ฐํ๋ค. list๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ num ๊ฐ์ ์ ์ธํ ๊ฐ์ ์์๋๋ก ์ ์ฅํ๋ค. ์ต์ข A์ ๋ค์์์ธ result๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 10972_๋ค์ ์์ด (0) | 2024.04.17 |
---|---|
[Baekjoon] 1455_๋ค์ง๊ธฐ II (0) | 2024.04.16 |
[Baekjoon] 2149_์ํธ ํด๋ (0) | 2024.04.12 |
[Baekjoon] 12927_๋ฐฐ์ ์ค์์น (0) | 2024.04.11 |
[Baekjoon] 3060_์์ฌ์์ด ๋ผ์ง (1) | 2024.04.10 |