WorkHard/코딩테스트

[코딩테스트] JAVA 프로그래머스 연습문제 - 가장 가까운 같은 글자

코딩공대 2023. 3. 12. 17:11
728x90

문제 : 프로그래머스 LV1. 가장 가까운 같은 글자

- 풀이

문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 문자열 s가 주어질 때. 위와 같이 정의된 연산을 수행하는 함수 solution을 완성하는 문제.
  1. int[]를 result로 선언해서 s의 길이만큼 배열로 만든다.

  2. 첫 번째 글자는 무조건 '-1'이다.

  3. 그다음 글자부터 lastIndexOf를 사용하여 'i - 1' 인덱스를 기준으로 있는지 없는지 확인한다.

  4. a값이 -1이면 -1을 넣고, -1이 아니라면 기존 위치의 인덱스에서 존재하는 값의 인덱스를 빼서 result에 넣으면 된다.

- 코드


처음 풀었던 카드뭉치 문제보다 간단하게 풀 수 있는 문제였다.

여기서는 뒤에서부터(오른쪽에서부터) 문자열을 찾는 -> lastIndexOf()를 사용해서 문제를 풀었다.

✭indexOf()
: 특정 문자나 문자열이 앞에서부터(왼쪽에서부터) 처음 발견되는 인덱스를 반환, 찾지 못하면 '-1'을 반환한다.

✭lastIndexOf()
: 특정 문자나 문자열이 뒤에서부터(오른쪽에서부터) 처음 발견되는 인덱스를 반환, 찾지 못하면 '-1'을 반환한다.