๐โ๏ธ ๋ฌธ์ ์ค๋ช
์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด 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์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
๐ก ์ ์ถ๋ ฅ ์
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #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์ ํด๋นํ๋ค๋ ์ ์ ์ฃผ์ํ์ธ์
๐ฉ ๋ด ํ์ด
import java.util.*;
class Solution {
public int solution(String t, String p) {
// 1. t๋ฅผ p๊ธธ์ด๋ก ์์๋ถํฐ ์๋ฅด๊ธฐ -> ๋ฆฌ์คํธ์ ๋ฃ๊ธฐ
// 2. ๋ฐฐ์ด์ ์์ ์ค, p๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ๊ตฌํ๊ธฐ
int answer = 0;
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < t.length() - p.length() + 1; i++) {
list.add(t.substring(i, i + p.length()));
}
for (String s : list) {
int intS = Integer.parseInt(s); // ํ๋ฆฐ ๋ฐฉ๋ฒ!!
int intP = Integer.parseInt(p); // ํ๋ฆฐ ๋ฐฉ๋ฒ!!
if (intS <= intP) {
answer++;
}
}
return answer;
}
}
์คํ๊ฒฐ๊ณผ๋ ํต๊ณผ์์ง๋ง, ์ ์ถ ์ ๋ฐํ์ ์๋ฌ๊ฐ ๋์๋ค.
์ด์ ๋ Integer.parseInt() ๋๋ฌธ์ด์๋ค!
Integer.parseInt() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ถ ๋ฌธ์์ด์ ์ ์๋ก ๋ณํํ๊ณ ์๋ค.
๋ฌธ์ ๋ ์ด ๋ฉ์๋๊ฐ ๋ฌธ์์ด ๋ด์ ์์ ์ค๋ 0์ 8์ง์๋ก ํด์ํ๋ค๋ ์ ์ด๋ค. ์ฃผ์ด์ง ์
๋ ฅ ๋ฌธ์์ด t์ p๋ 0์ผ๋ก ์์ํ์ง ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ์ ์๋ํ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ๋ถ๋ถ ๋ฌธ์์ด์ด 0์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐ, ์ด๋ 8์ง์๋ก ํด์๋์ด ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค๊ฒ ๋๋ค!!
์๋ฅผ ๋ค์ด,
"010" (๋ถ๋ถ ๋ฌธ์์ด) -> Integer.parseInt("010") -> 10 (์๋ชป๋จ, ๋ฌธ์์ด "010"์ด์ด์ผ ํจ)
๐ฉ ์์ ํ ํ์ด 1
import java.util.*;
class Solution {
public int solution(String t, String p) {
// 1. t๋ฅผ p๊ธธ์ด๋ก ์์๋ถํฐ ์๋ฅด๊ธฐ -> ๋ฆฌ์คํธ์ ๋ฃ๊ธฐ
// 2. ๋ฐฐ์ด์ ์์ ์ค, p๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ๊ตฌํ๊ธฐ
int answer = 0;
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < t.length() - p.length() + 1; i++) {
list.add(t.substring(i, i + p.length()));
}
for (String s : list) {
if (s.compareTo(p) <= 0) { // ๋ฌธ์์ด ์์ฒด๋ฅผ ๋น๊ต!!
answer++;
}
}
return answer;
}
}
๋ฌธ์์ด ๋น๊ต๋ฅผ ์ํด s.compareTo(p)๋ฅผ ์ฌ์ฉํ๋ค.
์ด ๋ฐฉ๋ฒ์ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฌธ์์ด๋ก ์ทจ๊ธํ์ฌ ์ฌ์ ์์ผ๋ก ๋น๊ตํ๋ค.
`s.compareTo(p)` ๋ฉ์๋๋ ๋ฌธ์์ด s์ ๋ฌธ์์ด p๋ฅผ ๋น๊ตํ์ฌ ๋ ๋ฌธ์์ด์ด ๊ฐ์ผ๋ฉด 0์ ๋ฐํํ๊ณ , s๊ฐ p๋ณด๋ค ์ฌ์ ์์ผ๋ก ์์ ์ค๋ฉด ์์๋ฅผ ๋ฐํํ๊ณ , s๊ฐ p๋ณด๋ค ์ฌ์ ์์ผ๋ก ๋ค์ ์ค๋ฉด ์์๋ฅผ ๋ฐํํ๋ค.
์๋ฅผ ๋ค์ด,
- "141".compareTo("271")๋ -1์ ๋ฐํํ๋ฏ๋ก "141"์ "271"๋ณด๋ค ์ฌ์ ์์ผ๋ก ์์ ์จ๋ค.
- "159".compareTo("271")๋ -1์ ๋ฐํํ๋ฏ๋ก "159"์ "271"๋ณด๋ค ์ฌ์ ์์ผ๋ก ์์ ์จ๋ค.
๐ฉ ์์ ํ ํ์ด 2
import java.util.*;
class Solution {
public int solution(String t, String p) {
// 1. t๋ฅผ p๊ธธ์ด๋ก ์์๋ถํฐ ์๋ฅด๊ธฐ -> ๋ฆฌ์คํธ์ ๋ฃ๊ธฐ
// 2. ๋ฐฐ์ด์ ์์ ์ค, p๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ๊ตฌํ๊ธฐ
int answer = 0;
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < t.length() - p.length() + 1; i++) {
list.add(t.substring(i, i + p.length()));
}
for (String s : list) {
Long intS = Long.parseLong(s); // Long์ผ๋ก ๋ณํ!
Long intP = Long.parseLong(p); // Long์ผ๋ก ๋ณํ!
if (intS <= intP) {
answer++;
}
}
return answer;
}
}
Long.parseLong() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ถ ๋ฌธ์์ด์ long ์ ์๋ก ๋ณํํ์.
Long.parseLong() ๋ฉ์๋๋ ๋ฌธ์์ด ๋ด์ ์์ ์ค๋ 0์ 8์ง์๋ก ํด์ํ์ง ์์ผ๋ฉฐ, ์ฌ๋ฐ๋ฅด๊ฒ ๋ฌธ์์ด์ long ์ ์๋ก ๋ณํํ์ฌ ์์ ์ค๋ 0์ ์ ์งํ๋ค!!
์๋ฅผ ๋ค์ด,
"010" (๋ถ๋ถ ๋ฌธ์์ด) -> Long.parseLong("010") -> 10 (์ฌ๋ฐ๋ฆ, 10์ด๋ผ๋ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ)
Long.parseLong()์ ์ฌ์ฉํจ์ผ๋ก์จ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฌธ์์ด๋ก ์ทจ๊ธํ๊ณ ๋ฌธ์์ด ๋น๊ต๋ฅผ ์ง์ ์ํํ๊ฒ ๋๋ฉฐ, ์์ ์ค๋ 0๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
'Back-end > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (java) (0) | 2023.08.06 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (java) (0) | 2023.08.04 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ (java) (0) | 2023.08.01 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ (java) (0) | 2023.07.30 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ํธ (java) (0) | 2023.07.29 |