숫자 찾기 (자바)

김재현·2023년 9월 27일
0

알고리즘 풀이

목록 보기
12/89
post-thumbnail

처음엔 for문을 이용하여 풀었다.

k와의 비교연산자가 제대로 작동하지 않아서 여러가지 시도한 끝에 '0'을 더하는 것으로 결과가 나왔다.

아쉬운점은,

이전에 배운 valueOf를 잊어버리고 ""를 더해버렸는데, 오히려 좋아?

아니다 valueOf에 더해 indexOf를 썼다면 numS를 선언하지 않아도 됐다.
--> indexOf() 는 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며 만약 찾지 못했을 경우 "-1"을 반환

이렇게.
answer= String.valueOf(num).indexOf(k+'0');
answer=answer<0 ? -1: answer+1;

이후에 조건연산자를 사용해봤다.
그런데 위에서처럼 대입 할 게 아니라 바로 return 시켰다면..!!
코드가 아래 2줄로 끝났을 것이다.

아름답지 않은가?

answer= String.valueOf(num).indexOf(k+'0');
return answer<0 ? -1: answer+1;

그리고 누군가는 아래와 같이 한줄로 끝냈다.

return ("-" + num).indexOf(String.valueOf(k));

"-"을 추가해서 인덱스를 1부터 카운트 하게 만들었다는군.
이게 뭐고

class Solution {
    public int solution(int num, int k) {

        // String numS = num+"";

        // for(int i=0;i<numS.length();i++) {
        //     if (numS.charAt(i)==k+'0') {
        //         answer=i+1;
        //         break;
        //     }
        //     else {
        //         answer=-1;
        //     }
        // }

        int answer= String.valueOf(num).indexOf(k+'0');
        return answer<0 ? -1: answer+1;
    }
}
profile
I live in Seoul, Korea, Handsome

0개의 댓글