https://school.programmers.co.kr/learn/courses/30/lessons/120904
1. num을 Char[ ]로 만들어서 for문 돌려서 값 찾기, 없으면 if문 -1
2. valueOf와 indexOf로
3. contains와 indexOf로
4. 천재같은 코드
1.
class Solution {
public int solution(int num, int k) {
char[] numChar = String.valueOf(num).toCharArray();
int answer = 0;
for(int i=0;i<numChar.length;i++) {
if(numChar[i]-'0' == k) {
answer = i+1;
break;
}
}
if(answer == 0) answer = -1;
return answer;
}
}
- 제일 손쉽게 생각난 방법, char배열로 만들어서 for문 돌려서 해결했다.
2. String.valueOf과 indexOf의 콜라보
class Solution {
public int solution(int num, int k) {
int answer = String.valueOf(num).indexOf(String.valueOf(k));
return answer < 0 ? -1 : answer+1 ;
}
}
class Solution {
public int solution(int num, int k) {
int answer = -1;
if(String.valueOf(num).contains(String.valueOf(k))) {
answer = String.valueOf(num).indexOf(String.valueOf(k)) +1;
}
return answer;
}
}
- 문자열 안에 특정 문자열 찾을 때 indexOf와 contains 쓰면 됨...!
- 이제 int => String 변환은 눈감고도 할 수 있을 것 같다.. 근데 .toString( )은 잘 안될때도 있어서,, (차이는 널처리 변환..!) 그냥 주로 String.valueOf로 하면된다.
3. 천재 코드 (다른 사람 풀이)
class Solution {
public int solution(int num, int k) {
return ("-" + num).indexOf(String.valueOf(k));
}
}
- String.valueOf(num).indexOf(String.valueOf(k)); 으로 하면 없을 때 -1로 잘 나오긴 하지만, 인덱스가 0부터 찍히게 된다..
- 그래서 "-"를 더해줘서 인덱스를 1부터 세게 해준다. 29183 => -29183 / 그래서 - 대신 다른 문자를 해도 상관없다..
- 처음에 이 풀이 보고 머리 댕쳤다..! 깜짝 놀랐다.
- 근데 시간은 1번과 2번에 비교해서 엄청 오래 걸린다... 왜.. 그런지는 모르겠지만..
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] A로 B 만들기 (0) | 2023.03.20 |
---|---|
[JAVA] 문자열 정렬하기 (2) (0) | 2023.03.20 |
[JAVA] 최댓값 만들기(2) (0) | 2023.03.20 |
[JAVA] n의 배수 고르기 (0) | 2023.03.19 |
[JAVA] 제곱수 판별하기 (0) | 2023.03.16 |