๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4821)
< ํ์ด์ง ์ธ๊ธฐ >
๋ฌธ์ ํ์ด
์ถ๋ ฅํ ์ ์๋ ํ์ด์ง ์๋ฅผ ์ผ๋ค. ์ด๋ ๋ฌธ์์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ ๊ฒ์ ํ์ธํด์ผ ํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _4821_ { // ํ์ด์ง ์ธ๊ธฐ
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 n;
while ((n = Integer.parseInt(bf.readLine())) != 0) {
boolean print[] = new boolean[n + 1];
int result = 0;
String str[] = bf.readLine().split(",");
for (int i = 0; i < str.length; i++) {
if (!str[i].contains("-")) {
if (Integer.parseInt(str[i]) > n) {
continue;
}
if (!print[Integer.parseInt(str[i])]) {
print[Integer.parseInt(str[i])] = true;
result += 1;
}
} else {
String num[] = str[i].split("-");
int a = Integer.parseInt(num[0]);
int b = Integer.parseInt(num[1]);
if (a > b || a > n) {
continue;
}
for (int j = a; j <= b; j++) {
if (j > n) {
break;
}
if (!print[j]) {
print[j] = true;
result += 1;
}
}
}
}
bw.write(result + "\n");
}
bw.flush();
}
}
๋ณ์)
n : ๋ฌธ์์ ์ด ํ์ด์ง ์
print : ํ๋ฆฐํธ ์ฌ๋ถ
result : ์ถ๋ ฅํด์ผ ํ๋ ํ์ด์ง์ ์
str :์ ๋ ฅ๋ ์ธ์ ๋ฒ์๋ฅผ ", " ๊ธฐ์ค์ผ๋ก ์๋ฅธ ๊ฒฐ๊ณผ
num : str ๊ฐ์ "-" ๊ธฐ์ค์ผ๋ก ์๋ฅธ ๊ฒฐ๊ณผ
a, b : num ๊ฐ ๋ ๊ฐ
๋ฌธ์์ ์ด ํ์ด์ง ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ ๋ ฅ๋ ์ธ์ ๋ฒ์๋ฅผ ", " ๊ธฐ์ค์ผ๋ก ์๋ผ str ๋ฐฐ์ด์ ์ ์ฅํ๋ค. str ๋ฐฐ์ด์ ํ์ํ๋ฉฐ ๋ค์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
1) ์์ ์ ์ ํ๋๋ผ๋ฉด ๋ฌธ์์ ๋ฒ์ ์์ธ์ง ํ์ธ ํ ์ถ๋ ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. ์์ง ์ถ๋ ฅ๋์ง ์์ ํ์ด์ง๋ผ๋ฉด ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ ํ result+1์ ํด์ค๋ค.
2) ํ์ดํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด ํ์ดํ์ ๊ธฐ์ค์ผ๋ก ์๋ผ num ๋ฐฐ์ด์ ์ ์ฅํ๋ค. ๋ ์์ ์ ์๋ฅผ ๊ฐ๊ฐ a, b์ ์ ์ฅํ๋ค. ์์ ์์ธ a๊ฐ ๋ค์ ์์ธ b๋ณด๋ค ํฌ๋ค๋ฉด ์ด ๋ฒ์๋ ์ธ์ํ์ง ์์ผ๋ฏ๋ก ๋์๊ฐ๋ค. ๋ํ, ์์ ์์ธ a๊ฐ ๋ฌธ์์ ์ด ํ์ด์ง ์์ธ n๋ณด๋ค ํฌ๋ค๋ฉด ์ธ์ํ ์ ์์ผ๋ฏ๋ก ๋์๊ฐ๋ค. a๋ถํฐ b๊น์ง ํ์ด์ง๋ฅผ ํ์ธํ๋ฉฐ ๊ฐ์ด n์ดํ์ด๊ณ ์์ง ์ธ์ํ์ง ์์๋ค๋ฉด ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ ํ result+1์ ํด์ค๋ค.
์ต์ข result๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 30803_์๋๊ผญ์ง (0) | 2024.07.09 |
---|---|
[Baekjoon] 1980_ํ๋ฒ๊ฑฐ ์ฌ๋ (0) | 2024.07.08 |
[Baekjoon] 1996_์ง๋ขฐ ์ฐพ๊ธฐ (0) | 2024.07.04 |
[Baekjoon] 5766_ํ ์๋ฒ์ง๋ ์ ๋ช ํด! (1) | 2024.07.03 |
[Baekjoon] 1913_๋ฌํฝ์ด (0) | 2024.07.02 |