문제 설명
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < num < 1,000,000
- 0 ≤ k < 10
- num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
입출력 예
입출력 설명
입출력 예 #1
- 29183에서 1은 3번째에 있습니다.
입출력 예 #2
- 232443에서 4는 4번째에 처음 등장합니다.
입출력 예 #3
- 123456에 7은 없으므로 -1을 return 합니다.
코드
class Solution {
public int solution(int num, int k) {
int answer = 0;
int index = (String.valueOf(num)).indexOf(k+'0');
answer = (index == -1) ? index : (index + 1);
return answer;
}
}
풀이
num은 문자열로, k는 문자로 변환하여 indexOf로 num에 k가 맨 처음에 나오는 자리 수를 index에 저장하여 그 값이 -1이면 -1을 answer에 넣어주고 그렇지 않다면 index + 1을 answer에 넣어준다.
다른 코드와 풀이
아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.
class Solution {
public int solution(int num, int k) {
return ("-" + num).indexOf(String.valueOf(k));
}
}
num과 k를 문자열로 변환하여 k가 num에 처음으로 등장하는 인덱스를 반환한다.
("-"을 추가해 문자열로 변환하는 동시에, 0부터 시작되는 인덱스가 1부터 시작하게끔 만들어줌
(-가 추가됨으로 0번째 인덱스는 -가 차지하게 되어 숫자만 봤을 때 인덱스가 1부터 시작한다는 의미))
'Coding Test' 카테고리의 다른 글
230930 특정 문자 제거하기 - Level 0 (1) | 2023.09.30 |
---|---|
230929 중복된 숫자 개수 - Level 0 (0) | 2023.09.29 |
230927 인덱스 바꾸기 - Level 0 (0) | 2023.09.27 |
230927 대문자와 소문자 - Level 0 (0) | 2023.09.27 |
230926 중복된 문자 제거 - Level 0 (0) | 2023.09.26 |