ํ๋ฌธ ๋ฌธ์์ด, ํฐ๋ฆฐ๋๋กฌ
GOOG, POOP ๊ณผ ๊ฐ์ด ๊ฑฐ์ธ์ฒ๋ผ ์๊ธด ๋ฌธ์
- ์์์ ๋งํ ๊ฒ์ฒ๋ผ lt์ rt๊ฐ ๋ฌธ์์ด ๊ธธ์ด์ 1/2๋งํผ ๋ฐ๋ณตํ ๋๊น์ง ๊ฐ์์ผ ํจ
- ๋ฐ๋ณต๋ฌธ์ for(int i=0; i< len/2 ; i++)
- lt = i;
- rt = len -i -1;
str = str.toUpperCase(); // ๋์๋ฌธ์ ๊ตฌ๋ถ ์ํ๊ธฐ๋ก ํ์ ๋
int len = str.length();
for(int i=0; i< len/2 ; i++){
if(str.charAt(i) != str.charAt(len -i -1) ) return "NO";
}
- StringBuilder์ ์ด์ฉํ๊ธฐ .equalsIgnoreCase()
String tmp = new StringBuilder(str).reverse().toString(); //์๋ ๋ฌธ์์ด, ๋ค์ง์ ๋ฌธ์์ด ๋น๊ต
if(str.equalsIgnoreCase(tmp)) answer="YES";
ํฐ๋ฆฐ๋๋กฌ = ์์์ ์ฝ์ ๋๋ ๋ค์์ ์ฝ์ ๋๋ ๊ฐ์ ๋ฌธ์์ด
- ์ด๋ฒ ๋ฌธ์ ์ ์กฐ๊ฑด์ ์ํ๋ฒณ๋ง ๊ฒ์ฌํจ. ํน์๋ฌธ์๋ ์ซ์๋ ์๊ด์์
- replaceAll()์ ์ฌ์ฉํ ์ ๊ท์. ^๋ ๋ถ์ [A-Z]๋ ๋๋ฌธ์ -> ํฉ์ณ์ "์์ด๋๋ฌธ์๊ฐ ์๋๋ฉด"
str = str.toUpperCase().replaceAll("^[A-Z]", "");
String tmp = new StringBuilder(str).reverse().toString();
if( str.equals(tmp) ) answer = "YES";
์ซ์๋ง ์ถ์ถ
๋ฌธ์์ ์ซ์๊ฐ ์์ฌ์๋ ๋ฌธ์์ด๋ก ์์ฐ์ ๋ง๋ค๊ธฐ
- ๋ฌธ์์ ์ซ์๊ฐ ์์ฌ์๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ์ซ์๋ง ์ถ์ถํด์ ๊ทธ ์์๋๋ก ๊ตฌ์ฑ๋ ์์ฐ์ ๋ง๋ค๊ธฐ
- ์์ tge0a1h205er -> 01205 ->1205
- ์์คํค๋ฌธ์ '0'=48, '9'=57
- answer = answer *10 + (x - 48)
- *10์ ํ๋ ์ด์ : ์๋ฆฟ์๋ฅผ ๋๋ฆฌ๊ธฐ ์ํด์... 1 -> 10 + 2 -> 120 + 0 -> 1200 + 5
- ์.. ์ด๋ฐ๊ฑธ ์ธ์ฐ๋ผ๋ ๊ฑฐ๊ตฌ๋
int answer=0;
for( char x : str.toCharArray() ){
if( x>=48 && x<==57 ) answer = answer*10 + (x-48);
}
return answer;
- ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ Character.isDigit(x) -> ์ด๊ฒ์ด ์ซ์์ธ์ง ํ๋ณ
String answer = ""; for( char x : str.toCharArray() ){ if( Character.isDigit(x) ) answer += x; } return Integer.parseInt(answer);
๊ฐ์ฅ ์งง์ ๋ฌธ์ ๊ฑฐ๋ฆฌ
๋ฌธ์์ดstr์ ๊ฐ ๋ฌธ์๊ฐ ํ๊ฒ๋ฌธ์ target์ ๋จ์ด์ง ๊ฑฐ๋ฆฌ๋ฅผ ์์๋๋ก ์ถ๋ ฅํ๊ธฐ
- teachermode e
- ๊ฐ๊ฐ์ ๋ฌธ์๊ฐ e๋ก ๋ถํฐ ๋จ์ด์ง ๊ฑฐ๋ฆฌ๋ฅผ ์์๋๋ก ์ถ๋ ฅํ๊ธฐ
- ๋ฐฐ์ด ์ผ์ชฝ๋ถํฐ ์์์ ์ซ์ P๋ฅผ ์ ์ํ๊ณ ํ๊ฒ ์ซ์์ ๊ฐ์ผ๋ฉด 0 , ์๋๋ฉด 1 ์ฆ๊ฐ์ํค๋ฉด์ ์์ผ๋ก ์ด๋ํ๊ธฐ
- P์ ์ด๊ธฐํ๋ ํฐ๋ฌด๋ ์๋ ์ซ์๋ก
- [1001][0][1][2][3][0][1][2][3][4][0] -> ํ๊ฒ ๋ฌธ์ ์์ ์ 0, ์๋๋ฉด ์์ผ๋ก 1 ์ฆ๊ฐ. ๋ค์ ์์ ์ด๋ฉด 0
- ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด์ผ ํ๋ฏ๋ก ์ค๋ฅธ์ชฝ์์ for๋ฌธ์ด ํ ๋ฒ ๋ ๋์์ผ ํจ.
- ์ด๋ฏธ ๊ตฌํ ๊ฐ๊ณผ ๋น๊ตํ๋ฉด์ ์๋ก ๊ตฌํ ๊ฐ์ด ๋ ์์ผ๋ฉด ์์
int[] answer = new int[str.length()];
int p = 1000;
for(int i=0; i<str.length(); i++){
if(s.charAt(i)==target){
p=0;
answer[i]=p;
} else {
p++;
answer[i]=p;
}
}
p=1000; //p ๋ค์ ์ด๊ธฐํ. ์ค๋ฅธ์ชฝ๋ถํฐ ๋ค์ ๋ฐ๋ณต๋ฌธ ๋์์ผ ํ๊ธฐ ๋๋ฌธ
for(int i=str.length(); i>0 i--){
if(s.charAt(i)==target){
p=0;
} else {
p++;
answer[i]=Math.min( answer[i], p); //์๋ฐฉํฅ ๋น๊ต๋ก ์ป์ ๊ฐ ์ค์์ ์์ ๊ฒ์ ๋์
ํ๊ธฐ
}
}
'๐๏ธ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฉ์๋] Stack ํด๋์ค ๋ฉ์๋ (1) | 2023.11.30 |
---|---|
[๋ฉ์๋] Map ์ธํฐํ์ด์ค ๋ฉ์๋ ๋ชจ์ (0) | 2023.11.30 |
[๋ฉ์๋] ArrayList ํด๋์ค ๋ฉ์๋ (0) | 2023.11.21 |
[์๋ฐ ์๊ณ ๋ฆฌ์ฆ ch.1] ๋ฌธ์์ด(3) (0) | 2023.11.12 |
[์๋ฐ ์๊ณ ๋ฆฌ์ฆ ch.1] ๋ฌธ์์ด (0) | 2023.11.12 |