알고리즘 문제 풀다가 참고하면 좋을 메서드를 찾아보았다.
Integer 클래스와 Character 클래스의 메서드를 정리해보자!
int parseInt(String s)
String str = "135";
int num = Integer.pasreInt(str);
int parseInt(String s, int radix)
String str = "0021"; // 3진법으로 7
int num = Integer.parseInt(str, 3); // num = 7
String str2 = "1000"; // 2진법으로 8
int num2 = Integer.parseint(str2, 2); // num2 = 8
int num3 = Integer.toBinaryString(str2); // 2진수는 toBinaryString 사용해도 된다.
String toString(int i)
int num = 328;
String str = Integer.toString(num); // int형 숫자 328이 문자열 "328"이 된다. str = "328"
String toString(int i, int radix)
int num = 45;
String str = Integer.toString(num, 3); // 10진수인 45를 3진수로 바꾸면? str = "1200"
[프로그래머스 1단계] 3진법 뒤집기
[문제] 자연수 n이 매개변수로 주어질 때, n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 해보자
→ Integer 클래스에 있는
parseInt
,toString
메서드를 사용하면 쉽게 풀 수 있다.
class Solution {
public int solution(int n) {
return Integer.parseInt(new StringBuilder(Integer.toString(n, 3)).reverse().toString(), 3);
}
}
boolean isUpperCase(char ch)
boolean isLowerCase(char ch)
char ch = 'a';
System.out.println(Character.isUpperCase(ch)); // false
System.out.println(Character.isLowerCase(ch)); // true
boolean isLetter(char ch)
char ch1 = '1';
char ch2 = 'A';
System.out.println(Character.isLetter(ch1)); // false
System.out.println(Character.isLetter(ch2)); // true
boolean isDigit(char ch)
char ch1 = '1';
char ch2 = 'A';
System.out.println(Character.isLetter(ch1)); // ture
System.out.println(Character.isLetter(ch2)); // false
boolean isWhiteSpace(char ch)
char ch = ' ';
System.out.println(Character.isWhiteSpace(ch)); // true
int getNumericValue(char ch)
char c = '1';
int n = Character.getNumericValue(c); // 문자 '1'이 숫자 1로 바뀌어 n에 저장
System.out.println(1 + n); // 2 출력
System.out.println(1 + c); // 50 출력 (문자 '1'의 아스키 코드 값 = 49)
[프로그래머스 0단계] 숨어있는 숫자의 덧셈(1)
[문제] 문자열 my_string 안의 모든 자연수들의 합을 return해보자
→ 문자열에서 숫자를 찾는다 → 숫자 모양의 char 문자들을 int형으로 바꾼다 → 모두 더한다
class Solution {
public int solution(String my_string) {
int answer = 0;
for (int i = 0; i < my_string.length(); i++) {
if (my_string.charAt(i) >= '0' && my_string.charAt(i) <= '9')
answer += my_string.charAt(i) - '0';
}
return answer;
}
}
class solution {
public int solution(String s) {
int answer = 0;
char[] a = s.toCharArray();
for (char x : a) {
if (Character.isDigit(x))
answer += Character.getNumericValue(x);
}
return answer;
}