๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4335)
< ์ซ์ ๋ง์ถ๊ธฐ >
๋ฌธ์ ํ์ด
์ฌ๋ฆฌ๊ฐ ์ธ์น ์๊ฐ ํฐ์ง, ์์์ง, ์ผ์นํ๋์ง ํ๋ณํ ๊ฒ์ ํ์ฉํ์ฌ ๊ฑฐ์ง๋ง์ ํ๋์ง ํ์ธํ๋ค.
์์ ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
10
too high
3
too low
4
too high
2
right on
0
10๋ณด๋ค ์๊ณ , 3๋ณด๋ค ํฌ๊ณ , 4๋ณด๋ค ์๊ณ = 3 < x < 4
ํ์ง๋ง 2์ผ ๋ ์ผ์นํ๋ค๊ณ ํ์ผ๋ฏ๋ก ์คํ ์ ๊ฑฐ์ง๋ง์ ํ ์ ์ด ์๋ค.
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.StringTokenizer;
public class _4335_ { // ์ซ์ ๋ง์ถ๊ธฐ
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;
int n = 0, start = 0, end = 11;
while ((n = Integer.parseInt(bf.readLine())) != 0) {
st = new StringTokenizer(bf.readLine());
String a = st.nextToken();
String b = st.nextToken();
if (b.equals("high")) {
end = Math.min(end, n);
} else if (b.equals("low")) {
start = Math.max(start, n);
} else {
if (n > start && n < end) {
bw.write("Stan may be honest\n");
} else {
bw.write("Stan is dishonest\n");
}
start = 0;
end = 11;
}
}
bw.flush();
}
}
๋ณ์)
n : ์ฌ๋ฆฌ๊ฐ ์ธ์น ์
start, end : ์์ ๊ฐ, ํฐ ๊ฐ
a, b : ์คํ ์ ๋ต๋ณ
0์ด ์๋ ๋๊น์ง ์ฌ๋ฆฌ๊ฐ ์ธ์น ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ์คํ ์ ๋ต๋ณ ์ ๋ ฅ๋ฐ๊ธฐ
2) ์คํ ์ ๋ต๋ณ์ด too high๋ผ๋ฉด end ๊ฐ ์ ๋ฐ์ดํธ
3) ์คํ ์ ๋ต๋ณ์ด too low๋ผ๋ฉด start ๊ฐ ์ ๋ฐ์ดํธ
4) ์คํ ์ ๋ต๋ณ์ด right on์ด๋ผ๋ฉด start๋ณด๋ค ํฌ๊ณ end๋ณด๋ค ์์์ง ํ์ธํ์ฌ ์กฐ๊ฑด์ ๋ง๋ค๋ฉด "Stan may be honest" ์ถ๋ ฅ, ์กฐ๊ฑด์ ๋ง์ง ์๋ค๋ฉด "Stan is dishonest" ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11809_YODA (1) | 2025.05.01 |
---|---|
[Baekjoon] 28464_Potato (1) | 2025.04.30 |
[Baekjoon] 11544_D as in Daedalus (1) | 2025.04.28 |
[Baekjoon] 5840_Breed Proximity (1) | 2025.04.25 |
[Baekjoon] 21221_Bold (0) | 2025.04.24 |