String(문자열) 다루기 - 0112. 암호
private static String solution(int l, int n, String str) {
String answer = "";
for(int i=0; i<n; i++) {
int k = 0;
String code = str.substring(i*l, (i+1)*l);
for(int j=0; j<code.length(); j++) {
if(code.charAt(j) == '#') {
if(j == code.length() - 1) k+= 1;
else k += Math.pow(2, (code.length() - j - 1));
}
}
answer += (char)k;
}
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int l = 7;
int n = sc.nextInt();
String str = sc.next();
System.out.println(solution(l, n, str));
}
private static String solution(int l, int n, String str) {
String answer = "";
for(int i=0; i<n; i++) {
String code = str.substring(0, l).replace('#', '1').replace('*', '0');
answer += (char)Integer.parseInt(code, 2);
str = str.substring(l);
}
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int l = 7;
int n = sc.nextInt();
String str = sc.next();
System.out.println(solution(l, n, str));
}
나의 풀이의 경우 조건을 통해 문자를 구분하고, Math
클래스의 pow()
메소드를
이용하여 2진수에 맞는 자릿수의 값을 계산하도록 구현하였다.
강의에서는 replace()
메소드를 통해 1과 0으로 변환 후 Integer
클래스의
parseInt()
메소드를 이용하여 2진수로 변환하였다.
parseInt(String s, int radix)
에서 redix
몇 진수로 표현할지 정할 수 있다.