-
728x90
문제 설명
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한 사항
- 0 < num < 1,000,000
- 0 ≤ k < 10
- num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
답안
class Solution { public int solution(int num, int k) { String numStr = Integer.toString(num); return numStr.indexOf(Integer.toString(k))>=0? numStr.indexOf(Integer.toString(k))+1 : -1; } }
포함, 불포함 문제가 나올 땐 indexOf 또는 contans를 사용하자!
이번에는 자릿수를 리턴해야하기 때문에 결과값으로 index를 리턴하는 indexOf를 이용한다.
하지만 0부터 세는 일반적인 index와는 달리 숫자의 자리 수를 리턴해줘야 하기 때문에
삼항 연산자를 통해서 0과 같거나 크면 indexOf의 결과값에 1을 더해주고 아닌 경우는 -1을 리턴해주는 식으로 처리한다.
또는 앞에 잉여 문자열을 하나 붙여서 0번째부터 파악하도록해서 index값을 강제로 늘려주는 방법도 있다.
728x90'algorithm' 카테고리의 다른 글
자바 알고리즘 - 문자열 계산하기 (0) 2023.09.01 자바 알고리즘 - 배열의 유사도 (0) 2023.09.01 자바 알고리즘 - n의 배수 고르기 (0) 2023.08.31 자바 알고리즘 - 자릿수 더하기 (0) 2023.08.31 자바 알고리즘 - OX 퀴즈 (0) 2023.08.30