문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
- answer 가 초기에는 int[] 로 초기화 되어있지만 값을 넣기 편하게 List<Integer> 로 만들어서 사용
- String 배열에 값을 구해야 하는 String 낱말 별로 넣어두기 Ex.)['b','a','n','a','n','a']
- ❗️split 함수는 배열에서만 사용 가능
- tempList 를 만들어서 해당하는 낱말이 없으면 -1을 answer에 넣고 있으면 인덱스값을 계산해서 answer에 넣어준다.
- 마지막으로 answer를 다시 int[] 로 변환 ➡️ Stream 사용해서 int[] 만들어서 넣어주기
코드
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
class Solution {
public int[] solution(String s) {
List<Integer> answer = new ArrayList<>();
String[] stringArray;
stringArray = s.split(""); //String 배열에 낱말 별로 넣어두기 ['b','a','n','a','n','a'] split 함수 배열만 가능
List<String> tempList = new ArrayList<>();
for(int i = 0; i<= s.length() - 1; i++){
if(tempList.contains(stringArray[i])){
tempList.add(stringArray[i]);
answer.add(i - s.lastIndexOf(stringArray[i], i - 1));
}
else {
tempList.add(stringArray[i]);
answer.add(-1);
}
}
return answer.stream()
.mapToInt(i -> i)
.toArray();
}
}
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Lv2][Java] 귤 고르기 (0) | 2023.02.11 |
---|---|
[프로그래머스][Java] 기사단원의 무기 (0) | 2023.02.05 |
[프로그래머스][Java] 명예의 전당 (1) (0) | 2023.02.04 |
[프로그래머스] 문자열 나누기 - Java (0) | 2023.01.31 |
[프로그래머스][Java] 크기가 작은 부분 문자열 (0) | 2023.01.21 |