2023. 1. 20. 09:37ใ์ฝ๋ฉํ ์คํธ ์ฐ์ต/ํ๋ก๊ทธ๋๋จธ์ค_2023
๋ฌธ์ ์ค๋ช
์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด t์ p๊ฐ ์ฃผ์ด์ง ๋, t์์ p์ ๊ธธ์ด๊ฐ ๊ฐ์ ๋ถ๋ถ๋ฌธ์์ด ์ค์์, ์ด ๋ถ๋ถ๋ฌธ์์ด์ด ๋ํ๋ด๋ ์๊ฐ p๊ฐ ๋ํ๋ด๋ ์๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฒ์ด ๋์ค๋ ํ์๋ฅผ returnํ๋ ํจ์ solution์ ์์ฑํ์ธ์.
์๋ฅผ ๋ค์ด, t="3141592"์ด๊ณ p="271" ์ธ ๊ฒฝ์ฐ, t์ ๊ธธ์ด๊ฐ 3์ธ ๋ถ๋ถ ๋ฌธ์์ด์ 314, 141, 415, 159, 592์ ๋๋ค. ์ด ๋ฌธ์์ด์ด ๋ํ๋ด๋ ์ ์ค 271๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์๋ 141, 159 2๊ฐ ์ ๋๋ค.
์ ํ์ฌํญ
- 1 ≤ p์ ๊ธธ์ด ≤ 18
- p์ ๊ธธ์ด ≤ t์ ๊ธธ์ด ≤ 10,000
- t์ p๋ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด๋ฉฐ, 0์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
"3141592" | "271" | 2 |
"500220839878" | "7" | 8 |
"10203" | "15" | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
๋ณธ๋ฌธ๊ณผ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
p์ ๊ธธ์ด๊ฐ 1์ด๋ฏ๋ก t์ ๋ถ๋ถ๋ฌธ์์ด์ "5", "0", 0", "2", "2", "0", "8", "3", "9", "8", "7", "8"์ด๋ฉฐ ์ด์ค 7๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ซ์๋ "5", "0", "0", "2", "2", "0", "3", "7" ์ด๋ ๊ฒ 8๊ฐ๊ฐ ์์ต๋๋ค.
์
์ถ๋ ฅ ์ #3
p์ ๊ธธ์ด๊ฐ 2์ด๋ฏ๋ก t์ ๋ถ๋ถ๋ฌธ์์ด์ "10", "02", "20", "03"์ด๋ฉฐ, ์ด์ค 15๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ซ์๋ "10", "02", "03" ์ด๋ ๊ฒ 3๊ฐ์
๋๋ค. "02"์ "03"์ ๊ฐ๊ฐ 2, 3์ ํด๋นํ๋ค๋ ์ ์ ์ฃผ์ํ์ธ์
๋์ ํ์ด
public int solution(String t, String p) {
int answer = 0;
long intP = Long.parseLong(p);
long[] ints = new long[t.length() - p.length() + 1];
for (int i = 0; i< ints.length; i++)
{
ints[i] = Long.parseLong(t.substring(i, i + p.length()));
}
for (long anInt : ints)
{
if (anInt <= intP) {
answer++;
}
}
return answer;
}
์ฐ์ ์ด ๋ฌธ์ ๋ฅผ ์๊ฐํ์ ๋ t๋ฅผ p์ ๊ธธ์ด๋งํผ ์๋ผ์ ๋น๊ตํ๊ธฐ ์ํด์ ์ฐ์ subString ๋ฉ์๋๊ฐ ์๊ฐ๋์ ์ด ๋ฉ์๋๋ฅผ ํ์ฉํ๋ค.
ํ ์คํธ๋ ์ฑ๊ณต์ด์๋๋ฐ ์ ๋ต์ ์ ์ถํ๋ฉด ํน์ ์ผ์ด์ค๋ค์์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋์ ๋ญ๊ฐ ํ๊ณ ์ฐพ์๋ดค๋๋
Long์ผ๋ก ๋ณํํด์ฃผ๋ฉด ๋๋ค๊ธธ๋ ํด๋ณด๋๊น ์ ๋ง ๋๋ค..!
์ด์ ๋ฅผ ์ฐพ์๋ดค๋๋ Integer์ ์ต๋๊ฐ์ ์ฝ 21์ต์๋ฆฌ(10์๋ฆฌ)๊น์ง์ธ๋ฐ p์ ์ ํ์ฌํญ์ด ์ต๋ 18์๋ฆฌ๋ผ๊ณ ์ฃผ์ด์ก๊ธฐ ๋๋ฌธ์
Integer๋ก ์ฒ๋ฆฌํ์ง ๋ชปํด์ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฌ๋๊ฒ์ด๋ค..
๋ฐ๋ผ์ Long์ผ๋ก ๋ณํํด์ฃผ๋๊น ์ค๋ฅ ํด๊ฒฐ๋๋ค ใ ใ