반응형
public int solution(String str) {
int answer = 0;
for ( char x:str.toCharArray()) {
if (x >= 48 && x <= 57) answer=answer*10+(x-48);
}
// String tmpStr = str.replaceAll("[a-zA-Z]","");
// int answer = Integer.parseInt(tmpStr);
// System.out.println(answer);
return answer;
}
public static void main(String[] args) {
chapter_9 T = new chapter_9();
Scanner in = new Scanner(System.in);
String str = in.nextLine();
System.out.println(T.solution(str));
}
👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇
문제 해결고민
1. 숫자만 추출을 하고 나머지 외에 문자를 삭제해야한다
2. 숫자를 추출했을때 0102 일 경우 102로 표현하게 되어야한다
3. 숫자를 표현할때 String이 아닌 Integer로 인식을 잡게 되면 앞에있는 0 은 자연스럽게 사라질 것 같다
나의 풀이
public int solution(String str) {
String tmpStr = str.replaceAll("[a-zA-Z]","");
int answer = Integer.parseInt(tmpStr);
System.out.println(answer);
return answer;
}
public static void main(String[] args) {
chapter_9 T = new chapter_9();
Scanner in = new Scanner(System.in);
String str = in.nextLine();
System.out.println(T.solution(str));
}
}
선생님의 풀이과정
아스키 코드를 사용한다
x >= 48 && x <= 57
범위가 숫자 '0'~'9' 범위를 지정하여 숫자만 추출하고
아스키 코드를 이용하여 자연수 만든다,
생각보다 내가 짠 코드와 쌤의 코드가 크게 차이가 없었다.
반응형
'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Aʟɢᴏʀɪᴛʜᴍ' 카테고리의 다른 글
Algorithm - 문자열 압축 (0) | 2023.11.01 |
---|---|
Algorithm - 문자 거리 (1) | 2023.11.01 |
Algorithm - 유효한 팰린드룸 (0) | 2023.10.18 |
Algorithm - 회문 문자열 (0) | 2023.10.18 |
Algorithm - 중복문자제거 (1) | 2023.10.10 |