숫자 찾기
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
문제 설명 : 정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
나의 풀이 : 정수 num을 String 배열로 변경한뒤 한자리씩 k와 비교 ! k와 일치하다면 반복문에서 사용한 i를 answer에 대입하는데, i가 0부터 시작하므로 +1을 해주었다.
class Solution {
public int solution(int num, int k) {
int answer = 0;
String strNum = Integer.toString(num);
//System.out.println("strNum : "+ strNum);
String[] strNumArr = strNum.split("");
for(int i=0;i<strNumArr.length;i++){
//System.out.println("strNumArr : "+ strNumArr[i] + " :[i]: " + i);
int newNum = Integer.parseInt(strNumArr[i]);
if( newNum == k) {
//System.out.println("newNum : "+ newNum + " :[i]: " + i);
answer = i+1;
break ;
}
}
if(answer == 0) answer = -1;
return answer;
}
}
다른 사람 풀이 : String.valueOf()를 사용하고 마지막 return시 삼항연산자로 깔끔하게 작성된 코드가 마음에 들었다! 다음에 나도 String.valueOf()를 사용해봐야지..!!
class Solution {
public int solution(int num, int k) {
String numStr = String.valueOf(num);
String kStr = String.valueOf(k);
int answer = numStr.indexOf(kStr);
return answer < 0 ? -1 : answer + 1 ;
}
}
참고한 블로그 JAVA split : https://jamesdreaming.tistory.com/84
참고한 블로그 자바에서 int를 String 타입으로 바꾸는 방법 : https://wakestand.tistory.com/421
728x90
300x250