인프런 커뮤니티 질문&답변
다른 풀이 질문입니다.
작성
·
178
0
안녕하세요.
제가 푼 방법은
import java.util.*;
public class Main12 {
public static void main(String[] args) {
Main12 t = new Main12();
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
String str = sc.nextLine();
System.out.println(t.solution(input, str));
}
public String solution(int input, String str) {
String answer = "";
String[] strArr = {};
char c1 = '#';
char c2 = '*';
for (int j = 0; j < input; j++) {
strArr[j] = str.substring(0, 7);
str = str.substring(7);
} //?????
char[] s = str.toCharArray();
for (int i = 0; i < s.length; i++) {
if (s[i] == c1) {
s[i] = '1';
}
else if (s[i] == c2) {
s[i] = '0';
}
}
String str2 = String.valueOf(s);
int n = Integer.parseInt(str2, 2);
if (n >= 65 && n <= 90) {
char c3 = (char)(n);
answer += c3;
}
return answer;
}
}
이런식으로 풀었습니다.
주석????처리된 부분을 빼고 그냥 #****## 넣었을때는 정상적으로 C가 출력되는데
주석으로 ????된 부분인 입력값을 7글자 단위로 끊는 코드 작성을 어떤식으로 해야할지 모르겠습니다.
지금 제가 올린 방법으로 하니 컴파일 에러가 발생하네요..
답변 1
0
안녕하세요^^
스트링배열을 String[] strArr = {}; 식으로 선언하면
strArr[j] = str.substring(0, 7); 와 같이 인덱스로 접근을 할 수 없습니다.
String[] strArr = new String[10];와 같이 공간을 미리 확보해놓아야 인덱스 접근이 가능합니다.
본인 코드이니 스스로 해결해보시기 바랍니다.





