문제
- 소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.
- 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.
입력
- 첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.
출력
- 첫 줄에 중복문자가 제거된 문자열을 출력합니다.
입출력 예제
풀이 방식은 다음과 같다.
입력받을 문자열과 메소드 출력하는 코드를 main에 작성한 후에 메소드를 구현해보자.
문자열의 길이만큼 for문을 돌며 작업을 수행한다.
코드 작성 전에 charAt(i) / i / indexOf(str.charAt(i)) 를 각각 System.out.println(); 찍어서 값을 확인했다.
- str.charAt(i) : 해당 문자
- i : 문자의 인덱스
- indexOf(str.charAt(i)) : 해당 문자가 가장 처음 발견된 인덱스
그러고 나니 if 문 안에 넣을 조건을 알 수 있었다.
해당 문자가 가장 처음 발견된 인덱스와 문자의 인덱스가 같다면 그 문자는 처음 발견된 것이므로 결과값에 넣어준다.
예를 들어보자.
TEST 라는 단어가 있다.
- str.charAt(i) : T / E / S / T
- i : 0 / 1 / 2 / 3
- indexOf(str.charAt(i)) : 0 / 1 / 2 / 0
이 되기 때문에 메소드를 수행하면 TES 라는 값이 나오게 되는 것이다.
이제 수행 결과를 확인해보자.
해당 글은 인프런 > 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비(김태원)강의를 참고하여 작성하였습니다.
'알고리즘 > 인프런' 카테고리의 다른 글
섹션 1. String(문자열)_8. 유효한 펠린드롬 (0) | 2022.08.21 |
---|---|
섹션 1. String(문자열)_7. 회문 문자열 (0) | 2022.08.19 |
섹션 1. String(문자열)_5. 특정 문자 뒤집기 (0) | 2022.08.18 |
섹션 1. String(문자열)_4. 단어 뒤집기 (0) | 2022.08.18 |
섹션 1. String(문자열)_3. 문장 속 단어 (0) | 2022.08.17 |