728x90
문제 : 프로그래머스 LV1. 가장 가까운 같은 글자
- 풀이
문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 문자열 s가 주어질 때. 위와 같이 정의된 연산을 수행하는 함수 solution을 완성하는 문제.
- int[]를 result로 선언해서 s의 길이만큼 배열로 만든다.
- 첫 번째 글자는 무조건 '-1'이다.
- 그다음 글자부터 lastIndexOf를 사용하여 'i - 1' 인덱스를 기준으로 있는지 없는지 확인한다.
- a값이 -1이면 -1을 넣고, -1이 아니라면 기존 위치의 인덱스에서 존재하는 값의 인덱스를 빼서 result에 넣으면 된다.
- 코드
처음 풀었던 카드뭉치 문제보다 간단하게 풀 수 있는 문제였다.
여기서는 뒤에서부터(오른쪽에서부터) 문자열을 찾는 -> lastIndexOf()를 사용해서 문제를 풀었다.
✭indexOf()
: 특정 문자나 문자열이 앞에서부터(왼쪽에서부터) 처음 발견되는 인덱스를 반환, 찾지 못하면 '-1'을 반환한다.
✭lastIndexOf()
: 특정 문자나 문자열이 뒤에서부터(오른쪽에서부터) 처음 발견되는 인덱스를 반환, 찾지 못하면 '-1'을 반환한다.
'WorkHard > 코딩테스트' 카테고리의 다른 글
[코딩테스트] JAVA 프로그래머스 연습문제 - 문자열 나누기 (0) | 2023.03.14 |
---|---|
[코딩테스트] JAVA 프로그래머스 연습문제 - 삼총사 (0) | 2023.03.13 |
[코딩테스트] JAVA 프로그래머스 연습문제 - 크기가 작은 부분 문자열 (0) | 2023.03.11 |
[코딩테스트] JAVA 프로그래머스 연습문제 - 카드 뭉치 (0) | 2023.03.10 |
[코딩테스트] countAllCharacters (0) | 2022.11.30 |