[알고리즘문제풀기] 숫자 찾기

silver's avatar
Jan 02, 2025
[알고리즘문제풀기] 숫자 찾기

문제

내가 작성한 오답

: 처음 찾은 자리수를 바로 출력해야하는데 멈추지 않아 같은 수가 뒤에도 있을 경우 마지막의 자리수를 출력했다.
notion image
class Solution { public int solution(int num, int k) { int answer = -1; String num1 = String.valueOf(num); for(int i = 0; i < num1.length(); i++ ){ if(num1.charAt(i)==(char)(k+'0')){ answer = i+1; } } return answer; } }

내가 작성한 정답

: break 추가
class Solution { public int solution(int num, int k) { int answer = -1; String num1 = String.valueOf(num); for(int i = 0; i < num1.length(); i++ ){ if(num1.charAt(i)==(char)(k+48)){ answer = i+1; break; } } return answer;
💡
int를 char로 변환 시 (아스키코드)‘0’에 해당하는 값을 더해줘야한다. (char)(k +’0’) 과 (char)(k+48)은 같다.

다른 사람들의 정답

class Solution { public int solution(int num, int k) { // "-num"의 문자열을 만들어 // -> index는 0부터 시작하기 때문에 -를 앞에 추가하여 맨 앞의 숫자가 1번이 되게 한다. // k로 문자열로 만들어 k가 나타나는 첫번째 위치를 찾는다. return ("-" + num).indexOf(String.valueOf(k)); } }
💡
indexOf 함수는 특정 문자나 문자열이 주어진 문자열 내에서 처음 나타나는 위치(인덱스)를 반환한다. 이 메서드는 검색할 문자가 발견되지 않으면 -1을 반환한다.
index 0부터 시작 // 문자 검색 String str = "Hello, World!"; int index = str.indexOf('o'); // 'o'의 첫 번째 인덱스를 찾습니다. -> 4 //문자열 검색 String str = "Hello, World!"; int index = str.indexOf("World"); // "World"의 시작 인덱스를 찾는다. -> 7 //검색 시작 위치 지정 String str = "Hello, World!"; int index = str.indexOf('o', 5); // 5번째 인덱스 이후에서 'o'를 찾는다. -> 8
 
Share article

silver