👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇
오늘의 문제
문제 해결고민
1. 문자열 메소드에 중복 문자를 확인하는 게 있을까?
2. 중복 문자 확인하는 메서드가 없는 경우 배열로 비교하는 처리를 해야 하나?
여러 방법을 고민해 봤으나 ㅠ 정보처리기사 실기가 머지않아 시간을 많이 쏟아내지 못했다.
시험을 끝낸 뒤 다시 확인해보려 했으나 우선 선생님의 수업을 듣고 재 생각해 보기로 했다
선생님의 풀이과정
1. 먼저 indexOf() 메서드를 사용하는 것이다.
indexOf() 메서드는
indexOf()는 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며
만약 찾지 못했을 경우 "-1"을 반환한다.
charAt으로 쪼갠 문자 / 인덱스 번호 / 처음 나타난 인덱스 번호
이것으로 유추하여 풀이하면 되는 문제였다.
import java.util.*;
class Main {
public String solution(String str) {
String answer;
char[] substr = str.toCharArray();
int lt = 0, rt = str.length() - 1;
while (lt < rt) {
if (!Character.isAlphabetic(substr[lt])) { // 알파벳이 아닐 때
lt++;
} else if (!Character.isAlphabetic(substr[rt])) { // 알파벳이 아닐 때
rt--;
} else {
char tmp = substr[lt];
substr[lt] = substr[rt];
substr[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(substr);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(T.solution(str));
}
}
// #a!bGE*@sT
indexOf()
indexOf(String s) : 탐색하고자 하는 문자열에서 s 문자열이 몇 번째 인덱스에 있는지 확인, 없으면 -1 반환, 아스키코드도 가능하다
indexOf(int i) :
indexOf(String s, int startindex) : startindex는 탐색하는 위치를 지정하는 것이다.
indexOf(int i, int startindex)
lastIndexOf() : 특정 문자나 문자열에서 해당하는 문자를 뒤부터 탐색하여 찾은 인덱스 값을 반환한다. 찾지 못할 경우 -1을 반환한다,
lastIndexOf(String s)
lastIndexOf(int i)
lastIndexOf(String s, int startindex)
lastIndexOf(int i, int startindex)
'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Aʟɢᴏʀɪᴛʜᴍ' 카테고리의 다른 글
Algorithm - 유효한 팰린드룸 (0) | 2023.10.18 |
---|---|
Algorithm - 회문 문자열 (0) | 2023.10.18 |
Algorithm - 특정 문자 뒤집기 (0) | 2023.09.24 |
Algorithm - 단어 뒤집기 (1) | 2023.09.24 |
Algorithm - 가장 긴 단어 찾기 (1) | 2023.09.21 |