https://school.programmers.co.kr/learn/courses/30/lessons/120904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
■ 문제 설명
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
■ 제한사항
- 0 < num < 1,000,000
- 0 ≤ k < 10
- num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
■ 입출력 예
num | k | result |
29183 | 1 | 3 |
232443 | 4 | 4 |
123456 | 7 | -1 |
■ 나의 코드
import java.util.*;
class Solution {
public int solution(int num, int k) {
int answer = -1;
String str[] = String.valueOf(num).split("");
for(int i=0; i<str.length; i++) {
if(str[i].equals(String.valueOf(k))) {
answer = i +1;
break;
}
}
return answer;
}
}
■ 코드 풀이
answer에 초기값을 -1로 주어 else 처리를 해주었고, str에 valueOf과 split를 사용해 num을 공백 기준으로 문자를 잘라 string 객체로 바꿔주었습니다. 그 후 str의 길이만큼 반복시켜 str에 k가 포함되어 있다면 answer에 i + 1을 해주고 반복문을 나올 수 있도록 해주었습니다.
■ 기타
String.valueOf : object값을 string형으로 변환해주는 메서드
split : 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 쓰는 메서드
equals : 객체끼리 내용을 비교하는 메서드